在我的项目中,我有两个模块(A,B)
取决于公共模块C
。
我希望A,B
共享通用配置,例如存储库配置,插件配置等。为了实现这一点,C
成为父pom并且A,B
继承 from it(不需要聚合,因此C
不引用A,B
)
但是,C
本身包含一些java代码以及单元测试。现在,如果我在mvn test
内运行C
,则不执行任何操作。据推测,pom
- 打包的模块不应包含任何代码。
以上配置是否存在严重缺陷?是否应该引入另一个常见 pom,即使一个已经存在?
答案 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
请注意"父母"在目录结构方面,它可以是其子模块的兄弟。不要求目录结构层次结构与模块的层次结构匹配。