2

我的团队有一个共同的父项目,其模块包含多个报告插件配置(例如 checkstyle 和 findbugs,类似于Checkstyle 的多模块配置,但在一个单独的项目中)。我将把共同的父项目称为“common”,将报告模块称为“build-tools”。

我正在尝试找到一种方法,以便在发布公共项目时让公共项目引用正确版本的构建工具模块,而无需手动发布。

以下是我尝试过的几件事:

  • 使用 ${project.version} 作为构建工具版本号。这使用项目中指定的版本号,使用公共作为父级。
  • 使用常规版本号。这些不会在公共项目中更新。
  • 使用属性。同样,属性值不会在发布时更新。

谢谢!

4

2 回答 2

0

您使用的是哪个版本的 maven-release-plugin?试试 2.1。那应该正确处理版本属性的替换。

于 2011-07-25T15:44:52.313 回答
0

我知道这样做的唯一方法是使通用工具和构建工具具有相同的版本,并在发布时使用 -DautoVersionSubmodules:prepare。由于 common 聚合构建工具,如果两个模块在发布时具有相同的 SNAPSHOT 版本,则发布插件将发布并升级它们。

编辑:为了保持依赖版本正确,您的第一个选项应该有效。共同点:

<dependency>
    <groupId>com.foo</groupId>
    <artifactId>build-tools</artifactId>
    <version>${project.version}</version>
</dependency>

这将使您的 common 项目始终依赖与 common 本身具有相同版本的构建工具。如果他们总是步调一致地升级,那应该可以满足您的要求。有问题吗?

于 2011-07-26T14:17:15.840 回答