Jenkins - Maven源码构建
1 - 安装Maven Integration插件
2 - 构建一个Maven项目
2.1 新建Maven job
2.2 触发器
Build whenever a SNAPSHOT dependency is built
: 默认勾选,自动检查该项目pom.xml文件中定义的依赖
如果这些依赖的包生成了新的jar包,则会触发该任务,自动执行新的创建。
2.3 Pre Steps
设置在Maven构建前可以做的一些准备操作。
2.4 Post Steps
设置在Maven构建完成后可以做的一些操作。
一般会选择“Run only if build succeeds or is unstable”
2.5 配置Build
根据提示配置Maven的相关路径
配置Build的参数
基本配置
- Root POM:最上层pom.xml文件的路径,默认在工作区目录下
- Goals and options:设置mvn指令,例如clean package
- MAVEN_OPTS:设置启动Maven时指定需要的JVM选项
高级配置
- Incremental build - only build changed modules:只构建代码改动的模块和与之依赖的模块
- Disable automatic artifact archiving:不会生成自动打包的文件,例如pom、war、jar包等
- Disable automatic site documentation artifact archiving:不会为mvn site指令生成文件
- Disable automatic fingerprinting of consumed and produced artifacts:不记录有依赖的第三方包信息
- Enable triggering of downstream projects:触发下游项目执行构建任务
- Build modules in parallel:并发构建模块
- Use private Maven repository:指定一个独立的Maven仓库,位于工作空间的.repository目录
- 使用自定义的工作空间:为了不去覆盖或改动原来默认的工作空间,可以指定自己的工作目录
2.6 配置General的参数
根据需要配置保存的构建和构建包的数目
- 构建天数:之前的旧构建所有信息都会被删除
- 构建包个数:构建本身的基本信息会保留(日志、历史、报告等)
3 - 实例
3.1 Java项目源码
编写一个简单的包含pom.xml文件Java项目,用于maven构建。
$ cd testrepo/
$ ll
total 12
-rw-rw-r-- 1 gerrit gerrit 695 Dec 17 16:17 pom.xml
-rw-rw-r-- 1 gerrit gerrit 28 Dec 17 16:17 README.md
drwxrwxr-x 4 gerrit gerrit 30 Dec 17 16:17 src
-rw-rw-r-- 1 gerrit gerrit 51 Dec 17 16:17 testlog.txt
$
$ cat pom.xml
<?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 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>anliven.testmaven</groupId>
<artifactId>testmaven</artifactId>
<version>0.0.1-SNAPSHOT</version>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.10</version>
</dependency>
</dependencies>
</project>[gerrit@mt101 testrepo]$
$
$ cat src/main/java/anliven/testmaven/HelloMaven.java
package anliven.testmaven;
public class HelloMaven {
public String sayHello() {
return "Hello Maven!";
}
}
$
$ cat src/test/java/anliven/testmaven/HelloMavenTest.java
package anliven.testmaven;
import org.junit.*;
import org.junit.Assert.*;
public class HelloMavenTest {
@Test
public void testMaven() {
System.out.println("Run test!");
Assert.assertEquals("Hello Maven!", new HelloMaven().sayHello());
}
}
$
3.2 Jenkins配置
3.3 运行结果
构建历史
工作区
控制台输出
行动是绝望的解药!
欢迎转载和引用,但请在明显处保留原文链接和原作者信息!
本博客内容多为个人工作与学习的记录,少数内容来自于网络并略有修改,已尽力标明原文链接和转载说明。如有冒犯,即刻删除!
以所舍,求所得,有所获,方所成。