【问题标题】:Automatically build Maven Project in case of a dependency upgrade在依赖升级的情况下自动构建 Maven 项目
【发布时间】:2017-10-02 04:52:07
【问题描述】:

我正在将 Jenkins 用于 CI/CD。 Jenkins 与我的 GIT 帐户集成在一起,一旦代码有更新,Jenkins 就会自动构建它。

假设我正在使用 Spring Framework,并且 Spring 框架的版本已更新。如何使用 Jenkins 和 Maven 自动构建所有使用 Spring 框架的项目?有什么插件可以做到吗?如果有人可以分享一些相同的教程/网址等会很棒吗?

【问题讨论】:

  • 这不是 maven 的预期用途。您为不可变的依赖项选择了一个版本。更改版本会带来问题,您无法自动进行。
  • 应该自动完成,这样更有意义。例如,我在大约 100 个项目中使用 Spring Security 依赖项。让我们假设 Spring Security 获得了重要的安全升级。手动构建所有这些项目是没有意义的,应该有一些方法可以自动构建所有这些项目。
  • 我明白了,我已经添加了答案。

标签: maven jenkins build build-automation


【解决方案1】:

创建您自己的父 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>

【讨论】:

    猜你喜欢
    • 2015-02-07
    • 2019-12-04
    • 2011-09-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多