2016-11-24 37 views
1

我正在嘗試使用artifactory Jenkins插件獲取管道。當我在jenkins自由式項目中使用插件作爲buildstep時,它完美運行。當我直接從管道中運行maven時,它完美地工作。當我使用下面的腳本通過Artifactory插件運行maven時,它失敗。我得到的錯誤是:Jenkins Artifactory插件在Maven構建過程中未檢測到我的編譯器

此環境中未提供編譯器。也許你在JRE而不是JDK上運行 ?

這是我當前的腳本:

node { 

    stage ('clone') { 
     git credentialsId: 'git', url: '<URL to GIT repo>' 
    } 

    stage ('build and deploy') { 
     env.JAVA_HOME="${tool 'JDK8'}" 
     env.PATH="${env.JAVA_HOME}/bin:${env.PATH}" 

     def server = Artifactory.server "arti-test" 
     def buildInfo = Artifactory.newBuildInfo() 
     buildInfo.env.capture = true 
     def rtMaven = Artifactory.newMavenBuild() 
     rtMaven.tool = 'M3' 
     rtMaven.resolver server: server, releaseRepo: 'libs-release', snapshotRepo: 'libs-snapshot' 
     rtMaven.deployer server: server, releaseRepo: 'libs-release-local', snapshotRepo: 'libs-snapshot-local' 

     rtMaven.run pom: 'pom.xml', goals: 'clean install', buildInfo: buildInfo 

     buildInfo.retention maxBuilds: 10, maxDays: 7, deleteBuildArtifacts: true 
     server.publishBuildInfo buildInfo 
    } 

} 

回答

2

詹金斯Artifactory的插件的下一版本將包括設置JDK的API用於Maven和搖籃管道的基礎之上。查看跟蹤此任務的此問題: https://www.jfrog.com/jira/browse/HAP-848 作爲臨時解決方法,您可以將JDK/bin目錄添加到Jenkins構建代理上的PATH環境變量。您需要將其直接添加到代理機器上(而不是通過Jenkine)。