如何在maven中创建可重用的构建配置?

时间:2013-06-18 17:48:43

标签: java maven build

我有使用maven的java项目构建,其中有几个子模块以相同的方式构建:有可执行jar,lib目录中的依赖jars,一些资源等。

模块之间的配置仅在主类中有所不同。因此,我想创建某种预配置的构建(或宏或其他),以便不将相同的构建插件配置复制到不同的pom.xml模块,而是将main-class作为参数重用相同的配置。

我怎样才能做到这一点?

(构建配置:http://pastebin.com/9Fm5rFK7

1 个答案:

答案 0 :(得分:2)

您可以使用maven properties对其进行参数化,在inherited之后覆盖它们。在您的情况下,您可以引入mainClass属性并在父模块的插件配置中使用它,例如<mainClass>${mainClass}</mainClass>。然后可以在子模块中覆盖此属性。

编辑:
对于父pom,我指的是pluginManagement部分(抱歉不清楚)。我在这里用你的构建配置创建了一个例子: https://gist.github.com/ceilfors/5827916

我认为这是你在儿童模块中获得的最低限度。由于jar包装类型,maven-jar-plugin是可选的。请参阅lifecycle bindings,您可以看到该插件将在package阶段被调用。

此外,当您的项目变得更加复杂时,您也可以探索如何merge插件配置。我在这里创建了另一个例子:https://gist.github.com/ceilfors/5828039。请注意,未使用mainClass的属性。

希望这有帮助。