2017-12-05 2 views
0

프리 스타일 작업을 파이프 라인 코드로 변환하려고합니다. 다음은 MAVEN_OPTS가 "Invoke Artifactory Maven 3"에서 Maven 목표와 함께 선언 된 것입니다.파이프 라인에서 MAVEN_OPTS 전달

메이븐 목표 : 깨끗한

MAVEN_OPTS를 설치 : -Xms512m

-XX -Xmx2048m

: PermSize = 256m

-XX :를 MaxPermSize = 1,024m

-Denv. 빌드 타임 스탬프 = $ {BUILD_TIMESTAMP}

-Denv.b uild - 일 = $ {JOB_NAME}

-Denv.build 번호 = $ {BUILD_NUMBER}

-Denv.build-URL = $ {BUILD_URL}

-Denv.git 커밋 = $ {GIT_COMMIT}

-Denv.git 분기 = $ {GIT_BRANCH} 파이프 라인의

내 재판 :

node('node1') { 

    def javaHome = tool name: 'JDK 1.8', type: 'hudson.model.JDK' 
    def mvnHome = tool name: 'M3', type: 'hudson.tasks.Maven$MavenInstallation' 
    sh "$mvnHome/bin/mvn -f pom.xml clean install -U -Dmaven.repo.local=$WORKSPACE/.m2/repository -Xmx2048m -Xms512m -XX:PermSize=256m -XX:MaxPermSize=1024m -Dtimestamp=${BUILD_TIMESTAMP} ..." 

    } 

Error: 
Could not find metadata org.apache.maven.plugins/maven-metadata.xml in local 

나는 MAVEN_OPTS를 잘못된 방향으로 전달하고 있음을 확신합니다. 누군가 파이프 라인에서 MAVEN_OPTS를 선언하는 데 올바른 systax를 안내 할 수 있습니까?

답변

0

환경 변수 MAVEN_OPTS를 설정하면 작동합니다.

pipeline { 
    agent any 
    tools { 
     jdk 'JDK 1.8' 
     maven 'M3' 
    } 
    environment { 
     MAVEN_OPTS = ' -Denv.build-timestamp=${BUILD_TIMESTAMP} ...' 
    } 
    stage('Example') { 
     steps { 
      sh 'mvn clean install' 
     } 
    } 
} 
+0

감사합니다, 나는 그것을 확인하지 않았지만, withMaven() 환경에서 maven_opts를 언급하는 해결책을 찾았습니다. 내가 그것을 게시하게해라. –

0

노드 ('노드 1') {

단계 ('MavenGoals') {

withMaven(jdk: 'JDK 1.8', maven: 'M3', mavenLocalRepo: '$WORKSPACE/.m2/repository', mavenOpts: '-Xmx2048m -Xms512m -XX:PermSize=256m ....') { 

    sh 'mvn clean install' 

    } 

}

}

관련 문제