在依赖项升级的情况下自动构建Maven项目
问题描述:
我正在使用Jenkins的CI/CD。 Jenkins与我的GIT帐户集成在一起,只要代码有更新,Jenkins就会自动构建它。在依赖项升级的情况下自动构建Maven项目
让我们假设我正在使用Spring Framework并且Spring框架的版本得到更新。我如何使用Jenkins和Maven自动构建使用Spring框架的所有项目?有没有插件可以做到这一点?如果有人可以分享一些教程/网址等等,会很棒吗?
答
创建自己的父POM和你的孩子使用dependency management section
<?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>com.greg</groupId>
<artifactId>ear-example</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>pom</packaging>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-io</artifactId>
<version>1.3.2</version>
</dependency>
</dependencies>
</dependencyManagement>
</project>
然后POM将要使用的依赖,但不指定版本,即版本将在父为所有儿童指定一次。您仍然需要在每个模块中包含依赖项。
<?xml version="1.0"?>
<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>com.greg</groupId>
<artifactId>ear-example</artifactId>
<version>1.0-SNAPSHOT</version>
</parent>
<artifactId>example-ear</artifactId>
<packaging>ear</packaging>
<dependencies>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-io</artifactId>
</dependency>
</dependencies>
这不是maven打算如何使用。您选择了一个不可变的依赖版本。更改版本可能会带来问题,您无法自动执行此操作。 –
它应该自动完成,它更有意义。例如,我在大约100个项目中使用Spring Security依赖项。让我们假设Spring Security进行重要的安全升级。没有必要手动构建所有这些项目,应该有一些方法可以自动构建所有这些项目。 –
我现在明白了,我已经添加了答案。 –