我正在尝试构建一个代码库,在该代码库中,子系统可以作为maven模块进行开发,而导入的POM无需关心maven模块的内部结构。
“导入” pom
<project>
<artifactId>application</artifactId>
<packaging>jar</packaging>
<dependencies>
<dependency>
<artifactId>submodule-1</artifactId>
</dependency>
</dependencies>
</project>
“导入的” pom
<project>
<artifactId>submodule-1</artifactId>
<packaging>pom</packaging>
<modules>
<module>api</module>
<module>implementation</module>
</modules>
<dependencies>
<dependency>
<artifactId>api</artifactId>
</dependency>
<dependency>
<artifactId>implementation</artifactId>
</dependency>
</dependencies>
</project>
这似乎确实有效,至少部分有效; mvn package
期间,生成的JAR似乎在类路径上。 IntelliJ显示应用程序对submodule-1
有依赖性,并在api
和implementation
上具有可传递性。但是,mvn dependency:tree
在构建submodule-1
时说
无法解析项目子模块-1:pom:1.0.0-SNAPSHOT的依赖项:找不到工件api:jar:1.0.0-SNAPSHOT
我正在尝试确定这是否是有效的模式,即包装pom
,并打包定义的依赖关系,这些依赖关系也是POM中定义的模块。
我偶然发现了一个工作但不受支持的边缘情况,还是依赖插件以某种方式被破坏了,或者我以某种方式被破坏了? / p>