我正在使用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
我希望在转移到管道之前重现我的行为,并为每个作业提供自己的本地存储库。
我找不到任何设置...... 我该怎么办?
答案 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
您只需定义本地缓存位置即可。