开发者

Maven common parent with custom reporting plugin configuration

My team has a common parent project with a module containing several reporting plugin configurations (e.g. checkstyle and findbugs, similar to Checkstyle's multimodule configuration, but in a separate project). I'm going to call the common parent project "common" and the reporting module "build-tools".

I'm trying to find a way to, when the common project is released, to have the comm开发者_如何学Goon project reference the correct version of the build-tools module without doing a manual release.

Here are a couple of the things I've tried:

  • Use ${project.version} for the build-tools version number. This uses the version number specified in the projects using the common as a parent.
  • Use regular version numbers. These are not updated in the common project.
  • Use a property. Again, the property value isn't updated on release.

Thanks!


Which version of the maven-release-plugin are you using? Try 2.1. That should properly handle the replacement of version properties.


The only way I know to do this is to make common and build-tools the same version and use -DautoVersionSubmodules when you release:prepare. Since common aggregates build-tools, if both modules have the same SNAPSHOT version when you do a release, the release plugin will release and uprev both of them.

Edit: To keep the dependency version correct, your first option should work. In common:

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

That will make your common project always have a dependency on build-tools with the same version as common itself. If they always uprev in lock-step, that should do what you want. Is there a problem with it?

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜