Anh*_*yen 4 nexus maven jenkins
我的项目有3个Maven模块,它们是由nodejs脚本构建的。
现在,我想与Jenkin和Nexus集成。我的Jenkin构建配置如下所示:
我还在“ 构建”部分的“ 提供配置文件构建”步骤中添加了我的Maven settings.xml,但是它没有用。Maven仍然失败,无法解析我的Nexus回购中的依赖项。
在我的本地专家中,settings.xml我为Nexus存储库和另一个存储库添加了一些配置。
你能把这种情况告诉我吗?我是詹金的新手。
提前致谢。
我想出了一个结合问题和答案的解决方案(均来自 Anh)。Anh 的问题解决方案的问题是我们必须包含可能包含凭据的 settings.xml(在我的例子中,它有一些机密信息),它不应该是存储库的一部分(如评论中突出显示的西吉)。
这就是我避免这种风险的方式(一步一步):


clean install -s settings.xml请注意,我在 Jenkins 中创建的构建项目是作为 Maven 项目。
我只是找到一种解决方法,可以直接将mvn-settings.xml添加到我的文件夹中,然后编辑运行命令,如下所示:
mvn clean install -s mvn-settings.xml
Run Code Online (Sandbox Code Playgroud)
还有另一种方法:
@Anh N. Nguyen,但要注意不要将秘密存储在源代码管理中。@Harikrishnan,步骤更少,并且不需要任何额外的插件(config-file-provider)脚步:
mvn-settings.xml从环境变量中读取机密。<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 https://maven.apache.org/xsd/settings-1.0.0.xsd">
<servers>
<server>
<id>nexus</id>
<username>${env.NEXUS_USER}</username>
<password>${env.NEXUS_PASSWORD}</password>
</server>
</servers>
</settings>
Run Code Online (Sandbox Code Playgroud)
pipeline {
agent {...}
environment {
NEXUS_CREDS = credentials('NexusArtifactoryLogin')
NEXUS_USER = "$NEXUS_CREDS_USR"
NEXUS_PASSWORD = "$NEXUS_CREDS_PSW"
}
stages {
...
stage('Build') {
steps {
\\assuming mvn-settings.xml is at root/current folder, otherwise provide absolute or relative path
sh 'mvn -s mvn-settings.xml clean install'
}
}
...
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
32147 次 |
| 最近记录: |