如何使用artifactory插件指定maven本地存储库路径?

时间:2017-07-15 00:22:25

标签: maven jenkins-pipeline artifactory

我正在使用Jenkins文件中的artifactory插件来驱动我的maven构建:

def goals = "clean install"
def artifactory = Artifactory.server 'artifactory'

configFileProvider([configFile(fileId: 'simple-maven-settings', variable: 'MAVEN_USER_SETTINGS')]) {
    def mavenRuntime = Artifactory.newMavenBuild()
    mavenRuntime.tool = 'maven350'
    mavenRuntime.resolver server: artifactory, releaseRepo: '…', snapshotRepo: '…'
    mavenRuntime.deployer server: artifactory, releaseRepo: '…', snapshotRepo: '…'

    def buildInfo = mavenRuntime.run pom: 'pom.xml', goals: "-B -s ${MAVEN_USER_SETTINGS} ${goals}".toString()

这很好用,但maven使用默认的共享位置〜/ .m2 / repository

我希望在转移到管道之前重现我的行为,并为每个作业提供自己的本地存储库。

我找不到任何设置...... 我该怎么办?

2 个答案:

答案 0 :(得分:3)

默认情况下,maven使用用户主目录下的.m2目录中的本地maven存储库。 如果您希望maven创建本地存储库(例如,在作业的工作空间中),请将-Dmaven.repo.local = .m2系统属性添加到目标值,如下所示:

def buildInfo = rtMaven.run pom: 'pom.xml', goals: 'clean install -Dmaven.repo.local=.m2'

-Dmaven.repo.local的值指向用于此maven构建的本地maven存储库。 您可以阅读更多相关信息here`

答案 1 :(得分:2)

你可以在Jenkins Pipeline with Maven

中这样做
  withMaven(
        // Maven installation declared in the Jenkins "Global Tool Configuration"
        maven: 'M3',
        // Maven settings.xml file defined with the Jenkins Config File Provider Plugin
        // Maven settings and global settings can also be defined in Jenkins Global Tools Configuration
        mavenSettingsConfig: 'my-maven-settings',
        mavenLocalRepo: '.repository') {

      // Run the maven build
      sh "mvn clean install"

    } // withMaven

您只需定义本地缓存位置即可。