Java Gradle和Jenkins在小型构建中的交互

Java Gradle和Jenkins在小型构建中的交互,java,jenkins,gradle,Java,Jenkins,Gradle,我正在开发一个由Gradle构建的Java应用程序,它将集成到Jenkins中 暂时忽略Gradle,可以在Jenkins中设置多个阶段(例如,构建、测试、部署),然后逐步执行,并在GUI中显示。 在Gradle中,我可以使用Java插件获得许多预定义任务(如构建和测试)。由于构建依赖于测试,所以每次执行构建时,我基本上都会运行一个管道(依赖关系图) 让我困惑的是,詹金斯和格拉德尔在这件事上是如何合作的。 由于Gradle中的依赖关系,我的Jenkins管道缩小到(或多或少)单个阶段,在Grad

我正在开发一个由Gradle构建的Java应用程序,它将集成到Jenkins中

暂时忽略Gradle,可以在Jenkins中设置多个阶段(例如,构建、测试、部署),然后逐步执行,并在GUI中显示。 在Gradle中,我可以使用Java插件获得许多预定义任务(如构建和测试)。由于构建依赖于测试,所以每次执行构建时,我基本上都会运行一个管道(依赖关系图)

让我困惑的是,詹金斯和格拉德尔在这件事上是如何合作的。 由于Gradle中的依赖关系,我的Jenkins管道缩小到(或多或少)单个阶段,在Gradle中执行的阶段隐藏在Jenkins UI中


这是“正常”的做事方式吗?拥有Gradle中的所有构建逻辑(因为它毕竟是一个构建工具),并且Jenkins只用于允许我自动执行任务的触发器?

对于Gradle,它是执行编译、构建目标的单个命令。它基本上执行构建过程,最后创建jar/war文件。对于Jenkins,您需要使用Jenkins阶段执行管道处理。这些阶段可能是
编译
类、
测试
执行单元测试用例、
使用sonar进行代码分析
、使用checkmarx进行安全检查等。下面的代码片段将让您了解Jenkins管道中的阶段

stages {
        stage('Compile') {
            steps {
                gradlew('clean', 'classes')
            }
        }
        stage('Unit Tests') {
            steps {
                gradlew('test')
            }
            post {
                always {
                    junit '**/build/test-results/test/TEST-*.xml'
                }
            }
        }
....
.....
要了解有关流程的更多详细信息,请参阅以下链接