具有自定义报告插件配置的Maven通用父级

时间:2011-07-25 15:18:33

标签: maven module maven-release-plugin

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

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

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

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

谢谢!

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

我知道这样做的唯一方法是使common和build-tools成为相同的版本,并在发布时使用-DautoVersionSubmodules:prepare。由于常见的聚合构建工具,如果两个模块在执行发布时具有相同的SNAPSHOT版本,则发布插件将释放并上传它们。

编辑:要保持相关性版本正确,您的第一个选项应该有效。共同点:

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

这将使您的公共项目始终依赖于与常见版本相同的构建工具。如果他们总是向前迈进,那应该做你想要的。它有问题吗?