2016-03-02 153 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

它为我工作。非常感谢你... –