zl程序教程

您现在的位置是:首页 >  后端

当前栏目

Jenkins - Maven源码构建

2023-09-14 08:59:09 时间

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 运行结果

构建历史

工作区

控制台输出