引言
在之前的文章中,和大家一起学习了如何在本地安装和部署jenkins,这篇文章继续学习如何使用jenkins来构建项目。上期文章地址:
新建项目
1.首先我们新创建一个简单的springboot项目,作为我们使用jenkins的构建对象。使用IDEA新建一个project,选择Spring Initializr
2.springboot选项
3.设置端口
修改application.properties文件,增加端口配置(如果习惯使用yml文件也可以):
server.port=8085
4.修改启动类代码,增加一个hello的restful接口
package com.jolan.simpleproject;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
@SpringBootApplication
@RestController
public class SimpleprojectApplication {
public static void main(String[] args) {
SpringApplication.run(SimpleprojectApplication.class, args);
}
@GetMapping("/hello")
public String hello(@RequestParam(value = "name", defaultValue = "World") String name) {
return String.format("Hello %s!", name);
}
}
5.修改pom文件
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.6.12</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.jolan</groupId>
<artifactId>simpleproject</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>simpleproject</name>
<description>Demo project for Spring Boot</description>
<properties>
<java.version>1.8</java.version>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<executions>
<execution>
<goals>
<goal>repackage</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.5.1</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
<encoding>UTF-8</encoding>
<fork>true</fork>
</configuration>
</plugin>
</plugins>
</build>
</project>
6.使用maven package进行打包
6.运行
使用idea启动,或在终端使用java -jar启动
java -jar simpleproject-0.0.1-SNAPSHOT.jar
7.测试
http://localhost:8085/hello?name=jolan
(tips:如何新建一个springboot项目参考资料:https://spring.io/quickstart)
好了,到此我们就完成了一个简单的项目了。最后我们把项目上传到github(略)。
使用jenkins
配置
jenkins在运行时,需要依赖一系列的环境配置,如jdk、maven等。首先我们登录jenkins首页:http://localhost:9010/jenkins/
然后点击左侧菜单的Manage Jenkins。选择全局配置。
maven配置:
jdk配置:
git配置:
创建pipeline
pipeline我理解就是流水线的意思,我们通过编辑流水线脚本,让jenkins帮助我们做规划好的工作。首先点击左上角的新建Item
然后直接点接流水线:
pipeline 脚本如下。其中"M3"是在maven的全局配置名称;
pipeline {
agent any
tools {
// Install the Maven version configured as "M3" and add it to the path.
maven "M3"
}
stages {
stage('Build') {
steps {
// Get some code from a GitHub repository
git 'https://github.com/jolan80l/simpleproject.git'
// Run Maven on a Unix agent.
sh "mvn -Dmaven.test.failure.ignore=true clean package"
// To run Maven on a Windows agent, use
// bat "mvn -Dmaven.test.failure.ignore=true clean package"
}
}
}
}
然后回到主界面,点击构建按钮
短暂的等待后,刷新页面可以看到构建结果。可以看到本次构建共花费了约18秒,构建结果成功!
从上面的脚本中我们看到,在Build阶段我们做了两件事。第一从github拉取代码(这就是我们新建项目的github地址),第二是执行了maven的package命令。这些过程我们可以在构建的日志中找到。
我截取部分构建日志供大家参考:
......
Cloning repository https://github.com/jolan80l/simpleproject.git
...
[INFO] Building jar: /Users/xxx/.jenkins/workspace/simple-java-maven-app/target/simpleproject-0.0.1-SNAPSHOT.jar
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
...
最后我们在/Users/xxx/.jenkins/workspace/simple-java-maven-app/target/simpleproject-0.0.1-SNAPSHOT.jar这个路径下可以找到jenkins帮忙自动打包的jar包啦。
构建后启动
最后我们修改一下脚本,使jenkins构建完成后自动启动应用。修改后的流水线脚本如下(路径的一部分涉及隐私使用xxx代替,请读者使用实际路径替换)
pipeline {
agent any
tools {
// Install the Maven version configured as "M3" and add it to the path.
maven "M3"
}
stages {
stage('Build') {
steps {
// Get some code from a GitHub repository
git 'https://github.com/jolan80l/simpleproject.git'
// Run Maven on a Unix agent.
sh "mvn -Dmaven.test.failure.ignore=true clean package"
// To run Maven on a Windows agent, use
// bat "mvn -Dmaven.test.failure.ignore=true clean package"
}
}
stage('Start') {
steps {
sh "cd /Users/xxx/.jenkins/workspace/simple-java-maven-app/target"
sh '''JENKINS_NODE_COOKIE=dontKillMe
java -Dhudson.util.ProcessTree.disable=true -jar /Users/xxx/.jenkins/workspace/simple-java-maven-app/target/simpleproject-0.0.1-SNAPSHOT.jar 2>&1 &'''
}
}
}
}
然后我们在浏览器访问http://localhost:8085/hello?name=jolan