在Maven中使用父模块共享代码和配置

时间:2012-09-26 15:34:50

标签: maven inheritance multi-module

在我的项目中,我有两个模块(A,B)取决于公共模块C。 我希望A,B共享通用配置,例如存储库配置,插件配置等。为了实现这一点,C成为父pom并且A,B 继承 from it(不需要聚合,因此C不引用A,B

但是,C本身包含一些java代码以及单元测试。现在,如果我在mvn test内运行C,则不执行任何操作。据推测,pom - 打包的模块不应包含任何代码。

以上配置是否存在严重缺陷?是否应该引入另一个常见 pom,即使一个已经存在

1 个答案:

答案 0 :(得分:3)

在Maven项目中非常典型的模式是有一个名为" parent"它包含您常用的Maven特定配置,配置文件,属性,依赖版本等。这是The Maven Way(TM)。

结构如下所示:

|-- parent
|-- common
|-- module-a
|-- module-b

因此,common,module-a和module-b各自依赖于parent,而module-a和module-b依赖于common。

看到这个优秀的资源: http://www.sonatype.com/books/mvnex-book/reference/multimodule-web-spring.html

请注意"父母"在目录结构方面,它可以是其子模块的兄弟。不要求目录结构层次结构与模块的层次结构匹配。