rtMavenRun()工件插件未使用jenkins中配置的凭据
这是我的管道:rtMavenRun()工件插件未使用jenkins中配置的凭据,maven,jenkins,artifactory,Maven,Jenkins,Artifactory,这是我的管道: stage('Deploy') { environment { MAVEN_HOME = '/usr/share/maven' JAVA_HOME= '/usr/local/openjdk-8' } steps { rtMavenResolver ( id: 'resolver-unique-id', serverId: 'my-server-c
stage('Deploy') {
environment {
MAVEN_HOME = '/usr/share/maven'
JAVA_HOME= '/usr/local/openjdk-8'
}
steps {
rtMavenResolver (
id: 'resolver-unique-id',
serverId: 'my-server-config',
releaseRepo: 'my-repo',
snapshotRepo: 'my-repo'
)
rtMavenDeployer (
id: 'deployer-unique-id',
serverId: 'my-server-config',
releaseRepo: 'my-repo',
snapshotRepo: 'my-repo'
)
rtMavenRun (
pom: 'pom.xml',
goals: 'help:effective-settings',
//goals: 'deploy',
resolverId: 'resolver-unique-id',
deployerId: 'deployer-unique-id'
)
// This works
rtPublishBuildInfo (
serverId: 'my-server-config'
)
我在jenkins(我的服务器配置)上配置了creds和URL。我知道它的配置是正确的,因为rtPublishBuildInfo()可以工作并发布到artifactory。用户使用的是一个完整的管理员,所以应该没有烫发问题
这是在一个容器从属中运行的,所以我必须手动设置环境以指向maven和java home的位置,以便插件找到它。它运行着mavenn的官方形象
当我尝试部署目标(已确认使用相同的用户信誉在本地工作)时,我看到以下错误:
[main] WARNING org.codehaus.plexus.PlexusContainer - Could not transfer metadata com.mycompany.app:my-app:1.0-SNAPSHOT/maven-metadata.xml from/to snapshots (https://my-tenant.jfrog.io/my-tenant/my-repo): Not authorized
[main] ERROR org.apache.maven.cli.MavenCli - Failed to execute goal org.apache.maven.plugins:maven-deploy-plugin:2.7:deploy (default-deploy) on project my-app: Execution default-deploy of goal org.apache.maven.plugins:maven-deploy-plugin:2.7:deploy failed.: NullPointerException -> [Help 1]
我试着运行help:effective settings
目标并检查了jenkins的输出。看起来好像没有用我的信用卡?这个插件如何与我在配置中设置的jenkins cred绑定一起工作?它是如何将这些信誉传递给mvn的
Effective user-specific configuration settings:
<?xml version="1.0" encoding="UTF-8"?>
<!-- ====================================================================== -->
<!-- -->
<!-- Generated by Maven Help Plugin on 2019-10-18T19:04:34Z -->
<!-- See: http://maven.apache.org/plugins/maven-help-plugin/ -->
<!-- -->
<!-- ====================================================================== -->
<!-- ====================================================================== -->
<!-- -->
<!-- Effective Settings for 'root' on 'mypackagepackage-2zbtg-hsxqv' -->
<!-- -->
<!-- ====================================================================== -->
<settings xmlns="http://maven.apache.org/SETTINGS/1.1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.1.0 http://maven.apache.org/xsd/settings-1.1.0.xsd">
<localRepository>/root/.m2/repository</localRepository>
<pluginGroups>
<pluginGroup>org.apache.maven.plugins</pluginGroup>
<pluginGroup>org.codehaus.mojo</pluginGroup>
</pluginGroups>
</settings>
我看到了这个错误:
[main] WARNING org.codehaus.plexus.PlexusContainer - Could not transfer metadata com.mycompany.app:my-app:1.0-SNAPSHOT/maven-metadata.xml from/to snapshots (https://my-tenant.jfrog.io/my-tenant/my-repo): Not authorized
[main] ERROR org.apache.maven.cli.MavenCli - Failed to execute goal org.apache.maven.plugins:maven-deploy-plugin:2.7:deploy (default-deploy) on project my-app: Execution default-deploy of goal org.apache.maven.plugins:maven-deploy-plugin:2.7:deploy failed.: NullPointerException -> [Help 1]
编辑:好的,尽管这在本地运行良好,但我尝试在pom中设置部署插件的更新版本:
<plugin>
<artifactId>maven-deploy-plugin</artifactId>
<version>2.8.2</version>
</plugin>
编辑:继续我与这个蹩脚的jfrog插件的史诗般的斗争,我禁用了本地repo的一致性检查,它可以部署,但现在我明白了这个错误。它正在转换我的pom,并将1.0-SNAPSHOT
转换为1.0-20191018.195756-35
为什么要这样做,以及如何让它不损坏我的pom文件
编辑:
我一定是个白痴,或者文件不是很清楚(也许两者都是)。我使用部署目标是因为。。。我想部署。但很明显,你不这样做的插件-这是有意义的,我现在。您可以
清理
和安装
软件包,但将其留给插件部署,以便插件将其放置在正确的位置并附加构建信息。使用install
作为目标有效答案是不要使用deploy
目标。构建包,插件将负责部署部分正确。更准确地说,请确保使用安装目标,这是Artifactory部署所连接的目标。我还需要运行“测试”阶段。artifactory插件会用它做任何奇怪的事情吗?我也希望在测试阶段使用它,因为注入了证书您可以简单地将测试添加到maven目标列表中-“干净安装测试包”。让我知道它是否适合你。您还可以选择在构建完成后的稍后阶段部署到Artifactory。请参阅文档了解如何执行此操作。需要在单独的步骤中完成此操作。因此,只需在一个阶段运行clean
测试
,然后在下一个阶段运行clean
安装。我不想在同一阶段部署和测试您可以在deployArtifacts设置为false的情况下执行“clean install test”,并在稍后阶段使用rtMaven.deployer.deloy()进行部署