pipeline部署java项目
2019-11-19 本文已影响0人
互联网中的一个咸鱼
总结步骤:
1、上传项目到gitlab
2、jenkins从gitlab上拉取项目
3、maven对项目进行构建
4、在jdk容器内部署项目
一、上传项目(gitlab)
[root@jenkins ~] ls
a.txt b.txt jenkins pom.xml README.md src
准备一个完善的java项目 将java项目上传到gitlab仓库上 保证pom.xml文件在项目的根目录下
git add .
git commit -m 'java code'
git push origin

二、从gitlab上拉取项目
pipeline {
agent none
stages {
stage('from gitlab pull') {
agent any
steps {
git credentialsId: '657820cc-5123-4f9f-8819-5124c008e7b8',
url: 'git@gitlab-db:alice/auto_cmdb_project.git'
# 这里可以借助片段生成器直接生成
}
}
}
}
项目会被拉取到${WORKSPACE}下
${WORKSPACE}位于/var/jenkins_home/workspace/task_name
三、用maven对项目进行编译
这里通过启用一个容器对项目进行编译
stage('maven build') {
agent {
docker {
image 'maven:3-alpine' # 通过容器进行创建
}
}
steps {
sh "mvn -B -DskipTests clean package" # 编译
}
}
构建完之后会生成一个target目录,目录内会存在一个jar包 最终操作的是这个jar包
[root@ jenkins ]ls
Jenkinsfile a.txt jenkins pom.xml target
README.md b.txt my-app-1.0.tgz src
[root@ jenkins ]cd target
[root@ jenkins ]ls
classes maven-archiver maven-status my-app-1.0-SNAPSHOT.jar test-classes
四、执行对应的jar包
用一个新的镜像执行jar包
stage('delopy'){
agent{ docker 'openjdk:8-jre'}
steps{
sh "java -jar target/my-app-1.0-SNAPSHOT.jar"
}
}
五、完整代码
pipeline {
agent none
stages {
stage('from gitlab pull') {
agent any
steps {
git credentialsId: '657820cc-5123-4f9f-8819-5124c008e7b8',
url: 'git@gitlab-db:alice/auto_cmdb_project.git'
}
}
stage('maven build') {
agent {
docker {
image 'maven:3-alpine'
}
}
steps {
sh "mvn -B -DskipTests clean package"
}
}
stage('delopy'){
agent{ docker 'openjdk:8-jre'}
steps{
sh "java -jar target/my-app-1.0-SNAPSHOT.jar"
}
}
}
}
构建之后的结果

第二种方式 通过源代码管理系统加载
在gitlab上传Jenkinsfile文件 放在项目的根目录下
文件内容为上述的完整代码

保存之后 点击构建也可以完成任务
以后想要修改构建内容 需要修改Jenkinsfile文件,重新上传到Gitlab上重新构建就可以了