2016-09-09 35 views
5

Artifactory için Jenkinsfile nasıl ayarlanır ben böyle benim jenkinsfile ettik:yükleme maven eser

properties([[$class: 'GitLabConnectionProperty', gitLabConnection: '[email protected]']]) 
node { 
    env.JAVA_HOME = tool 'JDK 7' 
    def mvnHome = tool 'Maven 3.2.2' 
    def nodeJS = tool 'IA_NodeJS' 
    env.PATH = "${mvnHome}/bin:${nodeJS}/bin:${env.JAVA_HOME}/bin:${env.PATH}" 

    stage ('checkout') { 
    checkout scm 
    } 

    stage ('build') { 
    gitlabCommitStatus("build") { 
     // your build steps 
     sh 'mvn clean install -Denv=dev -P !faster' 
    } 
    } 

    stage ('upload') { 
    gitlabCommitStatus("upload") { 
     def server = Artifactory.server "[email protected]" 
     def buildInfo = Artifactory.newBuildInfo() 
     buildInfo.env.capture = true 
     buildInfo.env.collect() 

     def uploadSpec = """{ 
     "files": [ 
      { 
      "pattern": "**/target/*.jar", 
      "target": "libs-snapshot-local" 
      }, { 
      "pattern": "**/target/*.pom", 
      "target": "libs-snapshot-local" 
      }, { 
      "pattern": "**/target/*.war", 
      "target": "libs-snapshot-local" 
      } 
     ] 
     }""" 
     // Upload to Artifactory. 
     server.upload spec: uploadSpec, buildInfo: buildInfo 

     buildInfo.retention maxBuilds: 10, maxDays: 7, deleteBuildArtifacts: true 
     // Publish build info. 
     server.publishBuildInfo buildInfo 
    } 
    } 
} 

bu yöntemle yüklenenler eserler olmadan "Maven'ın tarzı" düzeni (paketler alt klasör ve saçakları) yapmak jenkins.

Normal bir iş gibi yapay nesneye sonuçlanan artefaktı yüklemek istiyorum "Maven3-Artifactory Integration" işaretli olarak yüklenir.

+0

Neden mvn deploy'unu kullanmıyorsunuz? – khmarbaise

+0

İşleri, "mvn deploy" olmaksızın yapılan jenkinsfile dönüştürüyorum. Pomplarda değişiklik yapmadan onu değiştirmek istiyorum. @khmarbaise eğer mümkün değilse, ben – TeoMatthew

cevap

16

Artifactory Jenkins eklentisi sürüm 2.7.2'den Artifactory pipeline DSL'u kullanarak Maven ve Gradle'ı çalıştırabilirsiniz. şu şekilde görünecektir yeni DSL sizin yapınızın kodlarını kullanarak

:

def server = Artifactory.server "[email protected]" 
    def buildInfo = Artifactory.newBuildInfo() 
    buildInfo.env.capture = true 
    def rtMaven = Artifactory.newMavenBuild() 
    rtMaven.tool = MAVEN_TOOL // Tool name from Jenkins configuration 
    rtMaven.opts = "-Denv=dev" 
    rtMaven.deployer releaseRepo:'libs-release-local', snapshotRepo:'libs-snapshot-local', server: server 
    rtMaven.resolver releaseRepo:'libs-release', snapshotRepo:'libs-snapshot', server: server 

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

    buildInfo.retention maxBuilds: 10, maxDays: 7, deleteBuildArtifacts: true 
    // Publish build info. 
    server.publishBuildInfo buildInfo 

Sen jenkins-pipeline-examples daha Artifactory boru hattı DSL örnekler bulabilirsiniz.

+0

pompayı değiştireceğim, teşekkürler tam olarak istediğim! hata veya özellik isteği için github üzerinde sunabilir miyim? – TeoMatthew

+1

Hata raporu veya özellik isteği için [Jenkins Artifactory Plugin Jira] aracılığıyla iletişim kurmak daha iyidir (https://www.jfrog.com/jira/projects/HAP/issues). Jenkins Artifactory eklentisi açık kaynak kodlu bir projedir, [jenkins-artifactory-plugin] (https://github.com/JFrogDev/jenkins-artifactory-plugin) projesine bir çekme isteği göndererek her zaman kod katkıda bulunabilirsiniz. –