文章目录
一、使用Dockerfile编译、生成镜像
1. 安装通用工程common
在idea中对Jenkinsfile进行更改,增加安装common工具的命令
//git的凭证
def git_auth="0aa6d8b5-b2c8-4a66-8b76-a9d7d16c5bd5"
//git的URL
def git_url="git@192.168.74.11:kgc/tensquare_back.git"
node {
stage('pull code') {
//切换成变量,字符串符号使用双引号
checkout([$class: 'GitSCM', branches: [[name: "*/${branch}"]], extensions: [], userRemoteConfigs: [[credentialsId: "${git_auth}", url: "${git_url}"]]])
}
stage('check code') {
//定义SonarQubeScanner工具
def scannerHome = tool 'sonar-scanner'
//引用SonarQube系统环境
withSonarQubeEnv('sonarqube') {
sh """
cd ${project_name}
${scannerHome}/bin/sonar-scanner
"""
}
}
stage('make install public sub project') {
sh "mvn -f tensquare_common clean install"
}
}
2. 构建tensquare_back项目进行测试
问题分析:
这里会构建失败,因为缺少maven组件,在每一个微服务中都有一个pom.xml文件,里面有指向父进程 pom.xml的选项(如下图),common工具在进行加载的时候会先对其中的 pom.xml 文件进行加载,挨个加载其中的插件,因为 common 本身是一个工具而不是服务,工具在进行打包编译的时候并不需要指定方式。
解决方案:
把父工程 pom.xml 中的 maven 插件代码移至除了 tensquare_common 以外每个子工程 pom.xml中
剪切的代码粘贴到每个微服务的pom.xml文件中,除了common不用放,其他四个微服务都需要操作,完成上传推送