执行Maven Clean&Build时,如何通过命令行传递Artifactory访问令牌?
可以通过命令行传递Artifactory访问令牌替代settings.xml配置
直接用-Dartifactory.accessToken无效是因为Maven和Artifactory插件默认不识别这个自定义参数,需要通过以下两种标准方式实现:
方法1:覆盖settings.xml中的服务器凭证参数
先在settings.xml里定义服务器配置,将用户名和密码设为可替换的变量:
<servers> <server> <id>artifactory-releases</id> <!-- 这个ID要和pom.xml里仓库配置的id一致 --> <username>${artifactory.username}</username> <password>${artifactory.token}</password> </server> </servers>
然后在命令行执行Maven命令时,直接传递变量值:
mvn clean install -Dartifactory.username=your-username -Dartifactory.token=your-artifactory-access-token
注:部分Artifactory配置允许用户名留空,仅用令牌作为密码,此时可以省略
-Dartifactory.username,并把settings.xml里的<username>设为空或同样用变量。
方法2:通过Artifactory Maven插件传递令牌
如果使用JFrog的Artifactory Maven插件,可直接在插件配置中引用令牌变量,然后通过命令行传入:
首先在pom.xml中配置插件:
<build> <plugins> <plugin> <groupId>org.jfrog.buildinfo</groupId> <artifactId>artifactory-maven-plugin</artifactId> <version>3.2.2</version> <!-- 使用最新稳定版 --> <configuration> <contextUrl>https://your-artifactory-instance-url</contextUrl> <publisher> <repoKey>your-target-repo-key</repoKey> <password>${artifactory.token}</password> <!-- 若无需用户名,可省略username配置 --> </publisher> </configuration> </plugin> </plugins> </build>
然后执行命令时传递令牌:
mvn clean install artifactory:publish -Dartifactory.token=your-access-token
内容的提问来源于stack exchange,提问作者Halley
相关产品推荐
相关产品推荐

