2016-03-02 156 views

回答

15

如果您使用Artifactory來解決構建依賴關係或部署構建工件,建議使用Pipeline DSL for Gradle build with Artifactory

下面是來自Jenkins Pipeline Examples頁採取一個例子:

node { 
    // Get Artifactory server instance, defined in the Artifactory Plugin administration page. 
    def server = Artifactory.server "SERVER_ID" 
    // Create an Artifactory Gradle instance. 
    def rtGradle = Artifactory.newGradleBuild() 

    stage 'Clone sources' 
     git url: 'https://github.com/jfrogdev/project-examples.git' 

    stage 'Artifactory configuration' 
     // Tool name from Jenkins configuration 
     rtGradle.tool = "Gradle-2.4" 
     // Set Artifactory repositories for dependencies resolution and artifacts deployment. 
     rtGradle.deployer repo:'ext-release-local', server: server 
     rtGradle.resolver repo:'remote-repos', server: server 

    stage 'Gradle build' 
     def buildInfo = rtGradle.run rootDir: "gradle-examples/4/gradle-example-ci-server/", buildFile: 'build.gradle', tasks: 'clean artifactoryPublish' 

    stage 'Publish build info' 
     server.publishBuildInfo buildInfo 
} 

否則,你可以簡單地用SH蝙蝠管道步驟來運行gradle這個命令。

5

在jenkins中,您可以使用在Jenkinsfile中編寫的腳本創建jenkins管道。

我們使用'stages'和'node'作爲構建塊編寫腳本,這些構建塊允許您指定應作爲jenkins管道的一部分執行的指令。


Jenkinsfile

stage 'build_Project' 
node{ 
    if(isUnix()){ 
    sh 'gradle build --info' 

    } 
    else{ 
    bat 'gradle build --info' 
    } 
} 

上面的代碼片斷創建一個階段:

要使用JenkinsFile首先檢查操作系統並調用適當的外殼,可以執行gradle這個任務,如下執行gradle這個構建名稱爲build_project並執行當前項目的gradle構建腳本。

5

如果你的項目使用Gradle Wrapper你可以用下面的代碼片段在Jenkinsfile

stage('Gradle Build') { 
    if (isUnix()) { 
     sh './gradlew clean build' 
    } else { 
     bat 'gradlew.bat clean build' 
    } 
} 

如果你檢出到子目錄sub-dir你可能想使用

stage('Gradle Build') { 
    if (isUnix()) { 
     dir('sub-dir') {sh './gradlew clean build'} 
    } else { 
     dir('sub-dir') {bat 'gradlew.bat clean build'} 
    } 
} 
+0

它爲我工作。非常感謝你... –