我的项目有3个maven模块,它们是由nodejs脚本构建的。
现在我想整合Jenkin和Nexus。我的Jenkin构建配置看起来像这样:
我还在Build部分的Provide configuration filesbuild step中添加了我的maven settings.xml
,但它不起作用。Maven仍然失败,无法解决我的Nexus存储库中的依赖项。
在我的本地maven settings.xml
中,我添加了一些Nexus存储库和另一个存储库的配置。
你能把这个箱子给我看看吗?我是新来的。
先谢了。
8条答案
按热度按时间p1iqtdky1#
我想出了一个结合问题和答案的解决方案(都来自Anh)。Anh的解决方案的问题是,我们必须包括可能包含凭据的settings.xml(在我的情况下,它有一些机密信息),这不应该是存储库的一部分(正如sigi的评论中所强调的那样)。
这就是我如何避免这种风险(一步一步):
1.从Jenkins主页,后藤转到ManageJenkins > Managed Files
1.单击添加新配置> Maven settings.xml >保持ID未编辑(最好)>提交
1.提供一个易于识别的名称,并在必要时进行注解,然后将xml内容复制粘贴到内容区域。单击“提交”。
1.后藤转到项目的构建配置,在构建环境下,选中提供配置文件选项。
1.从文件夹中,选择您在上面的步骤3中添加的文件。
1.现在的关键点是填写目标字段。提供一个文件名(或者如果你需要的话,提供一个相对于你的项目的路径)。如果您需要在构建配置的其他部分中使用配置,您也可以选择填写变量名称(这些来自Config文件提供程序插件)。
1.现在,在Build部分,提供以下命令,从 checkout 的项目路径(jenkins复制到那里供您使用)中获取settings.xml文件:
clean install -s settings.xml
请注意,我在Jenkins中创建的构建项目是一个Maven项目。
xuo3flqw2#
我只是找到了一种方法,将
mvn-settings.xml
直接添加到我的文件夹中,然后编辑运行命令,如下所示:6ojccjat3#
我还将maven settings.xml添加到Provide configuration files中
等等...你永远都不用这么做任何maven命令都会在
$HOME/.m2/settings.xml
中查找settings.xml文件:你只需要确保运行Jenkins slave的用户(作业实际执行的地方)在特定的文件夹中有该文件。然后确保用户可以首先在本地maven项目上使用
mvn clean install
。一旦它工作了,你可以尝试你的Jenkins构建。pbpqsu0x4#
还有另一种方法:
1.这是对
@Anh N. Nguyen
answer的扩展,但注意不在源代码控制中存储秘密。1.它比
@Harikrishnan
简单,步骤更少,不需要任何额外的插件(config-file-provider)步骤:
1.配置
mvn-settings.xml
从环境变量中读取secret。1.你现在可以在你的源代码控制中签入它,完全安全。
1.在作业环境变量中公开Jenkins凭据秘密(声明性管道的加密)
svujldwt5#
x1c 0d1x转到您的作业配置
而不是构建部分
添加构建步骤:-创建顶级maven目标并填写Maven版本和目标
比点击前进按钮,并提到设置文件路径中提到的图像
zsohkypk6#
只需将settings.xml文件放到代码库中,然后运行mvn clean install -s<setting.xml_file_path>
cetgtptt7#
有一个程序描述here。对于Maven构建作业,
1.使用Manage Jenkins/Manage Credentials为您的远程存储库添加用户名/密码凭据。
1.使用Manage Jenkins/Managed Files添加新的Maven设置文件。复制settings.xml的内容。省略
<servers>
部分,但在<profile>
中引用远程存储库服务器ID和URL。还可以添加远程存储库ID,并从托管文件向导的弹出菜单中按名称选择凭据。1.对于您的Maven作业,在Configure/Build/Advanced.../Settings File/Provided settings.xml下,从弹出菜单中按名称选择托管设置文件。
当您触发构建时,Jenkins会将包含凭据的
<server>
元素注入到临时设置文件中。92dk7w1h8#
用mvn -X命令运行你的作业。在日志中,你会发现jenkins是从哪里挑选的setting.xml文件。
在我的情况下,我把我的设置.文件在/.m2/,但在检查日志,它被发现如下:/var/lib/jenkins/.m2