模块 A 和模块 B 引用 ProjectA pom 文件
ProjectA应该有包装“pom”并成为其他模块的“聚合器”。它pom.xml应该是这样的:
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.foo.bar</groupId>
<artifactId>myartifactname</artifactId>
<version>0.1-SNAPSHOT</version>
<packaging>pom</packaging>
<modules>
<module>ModuleB</module>
<module>ModuleC</module>
</modules>
</project>
ProjectA不应包含任何源文件,因此在模块 B 和 C 中声明对它的依赖是没有意义的。
但是模块的 A pom.xml 可以包含所有模块通用的定义(如插件配置、属性等)。在这种情况下,您可以在模块 B 和 C 中使用继承。例如模块 B 和 C(但不是 A)可以具有一个“父”部分,他们将在其中将 ProjectA 声明为“父”,从而继承上述定义。
我在 moduleB 的 pom 文件中使用 ModuleA 作为依赖项
同样,正如我在上面解释的那样,这没有意义。ProjectA 不是 java 模块,并且由于它具有打包 pom,因此没有从该模块构建的真正工件(读取 jar)。