Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Maven中使用父模块共享代码和配置_Maven_Inheritance_Multi Module - Fatal编程技术网

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

在Maven中使用父模块共享代码和配置,maven,inheritance,multi-module,Maven,Inheritance,Multi Module,在我的项目中,我有两个模块(A,B)依赖于公共模块C。 我希望A,B共享公共配置,例如存储库配置、插件配置等。为了实现这一点,C被设置为父pom,并且A,B从中继承(不需要聚合,因此C不引用A,B) 然而,C本身包含一些java代码,以及单元测试。现在,如果我在C内部运行mvn测试,则不会执行任何操作。据推测,pom-打包的模块不应该包含任何代码 上述配置是否存在严重缺陷?在Maven项目中,非常典型的模式是有一个名为“parent”的模块,该模块保存您常见的Maven特定配置、概要文件、属性、

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

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


上述配置是否存在严重缺陷?在Maven项目中,非常典型的模式是有一个名为“parent”的模块,该模块保存您常见的Maven特定配置、概要文件、属性、依赖版本等。这就是Maven方式(TM)

该结构如下所示:

|-- parent
|-- common
|-- module-a
|-- module-b
因此,common、module-a和module-b都依赖于父级,module-a和module-b依赖于common

请参阅此优秀资源:


注意,就目录结构而言,“父”可以是其子模块的同级。不要求目录结构层次结构与模块的层次结构相匹配。

谢谢,Noahz!我有点害怕听到它。至少在理论上,你知道为什么父模块和公共模块不能是同一个模块吗?这里有什么根本问题吗?单一责任原则。没有技术上的原因。我有相同的项目结构,但我不想产生三个不同的JAR(公共、模块a和模块b),我只想构建模块a和模块b,并将共同的代码附加到两者。有没有办法做到这一点?