欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 文旅 > 美景 > Jenkins通过Pipeline流水线方式编译Java项目

Jenkins通过Pipeline流水线方式编译Java项目

2025/6/20 6:03:39 来源:https://blog.csdn.net/s1608818981/article/details/148767822  浏览:    关键词:Jenkins通过Pipeline流水线方式编译Java项目

记录一下本人流水线配置,前提使用的jenkins:lts镜像然后自己通过dockerfile添加了JDK1.8和mvn插件,因为Jenkins镜像中的java版本过高编译我的项目会有问题所以新加一个1.8的。

docker-compose启动Jenkins

services:jenkins:image: jenkins-mvn:lts  container_name: jenkinsrestart: on-failure:3user: rootnetwork_mode: hostenvironment:TZ: Asia/ShanghaiLANG: zh_CN.UTF-8LANGUAGE: zh_CN:zhLC_ALL: zh_CN.UTF-8volumes:- /data/jenkins/jenkins-data:/var/jenkins_home   # Jenkins数据目录持久化- /usr/bin/docker:/usr/bin/docker   # 宿主机docker命令- /var/run/docker.sock:/var/run/docker.sock  # docker.sock用于执行宿主机容器命令- /etc/localtime:/etc/localtime:ro           # 时区同步- ./settings.xml:/opt/maven/conf/settings.xml  #私服配置

启动之后安装Jenkins推荐插件,然后再一下插件

Publish over SSH
Git Push
Maven Integration
Pipeline Maven Integration
Deploy to container
SSH
SSH Agent
SSH2 Easy
SSH Pipeline Steps
AnsiColor
Docker Pipeline

Jenkinsfile

pipeline {agent anyenvironment {VERSION = 'uat'MVN_SETTINGS = '/opt/maven/conf/settings.xml'JAVA_HOME = '/opt/java'PATH = "/opt/java/bin:${env.PATH}"}stages {stage('拉取代码') {steps {echo "\033[32m****** 开始拉取代码 ******\033[0m"git(url: 'http://192.168.1.10/test.git',  #项目地址credentialsId: '3d9048d1-e712-4cf1-b4cd',   #git密钥branch: "${VERSION}")echo "\033[32m****** 拉取代码完成 ******\033[0m"}}stage('构建项目') {steps {echo "\033[32m****** 开始构建项目(使用JDK1.8) ******\033[0m"sh '''export JAVA_HOME=/opt/javaexport PATH=$JAVA_HOME/bin:$PATHexport MAVEN_OPTS="-Xmx512m -Xms256m"ulimit -n 4096java -versionmvn -s /opt/maven/conf/settings.xml clean package -U -Dmaven.test.skip=true'''}}stage('部署到192.168.1.12') {steps {echo "\033[32m****** 开始部署到目标环境 ******\033[0m"sshPublisher(publishers: [sshPublisherDesc(configName: '192.168.1.12',transfers: [// 备份旧版本sshTransfer(execCommand: '''if [ -f /data/test/test/test.jar ]; thenmkdir -p /data/test/test/backupcp /data/test/test/test.jar /data/test/test/backup/test-$(date +%Y%m%d_%H%M).jarecho "旧版本已备份"fi'''),// 上传新版本并重启sshTransfer(sourceFiles: 'target/test.jar',removePrefix: 'target',remoteDirectory: 'test',cleanRemote: false,makeEmptyDirs: true,execCommand: '''cd /data/test/test/bin/bash constart.sh''')],verbose: true)])echo "\033[32m****** 部署完成 ******\033[0m"}}}
}

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词