Jenkinsfile Pipeline Example
12.6.1. Maven 子模块范例
Maven 子模块创建方法 https://www.netkiller.cn/java/build/maven.html#maven.module
目录结构
Project | |--- common (Shared) | | ---pom.xml |--- project1 (depend common) | |--- pom.xml |--- project2 (depend common) | |--- pom.xml |---pom.xml
构建 父项目
pipeline { agent { label "default" } stages { stage("检出") { steps { checkout( [$class: 'GitSCM', branches: [[name: env.GIT_BUILD_REF]], userRemoteConfigs: [[url: env.GIT_REPO_URL]]] ) } } stage("构建") { steps { echo "构建中..." sh 'mvn package -Dmaven.test.skip=true' // mvn 示例 archiveArtifacts artifacts: '**/target/*.jar', fingerprint: true // 收集构建产物 echo "构建完成." } } stage("测试") { steps { echo "单元测试中..." // 请在这里放置您项目代码的单元测试调用过程,例如: sh 'mvn test' // mvn 示例 echo "单元测试完成." junit '**/target/surefire-reports/*.xml' // 收集单元测试报告的调用过程 } } stage("部署") { steps { echo "部署中..." echo "部署完成" } } } }
构建共享项目
pipeline { agent { label "default" } stages { stage("检出") { steps { checkout( [$class: 'GitSCM', branches: [[name: env.GIT_BUILD_REF]], userRemoteConfigs: [[url: env.GIT_REPO_URL]]] ) } } stage("构建") { steps { echo "构建中..." dir(path: 'common') { sh 'mvn package -Dmaven.test.skip=true' // mvn 示例 archiveArtifacts artifacts: '**/target/*.jar', fingerprint: true // 收集构建产物 } echo "构建完成." } } stage("测试") { steps { echo "单元测试中..." sh 'mvn test' // mvn 示例 echo "单元测试完成." junit 'target/surefire-reports/*.xml' // 收集单元测试报告的调用过程 } } stage("部署") { steps { echo "部署中..." dir(path: 'common') { sh 'mvn install' } echo "部署完成"