【发布时间】:2016-10-01 02:51:11
【问题描述】:
我有一个具有以下设置的多模块 maven 项目。
/root/pom.xml
/root/core/proj1/pom.xml
/root/core/proj2/pom.xml
/root/support
/root/support/proj3/pom.xml
父pom如下(仅包括相关部分)
<groupId>com.mycompany.abc</groupId>
<artifactId>platform</artifactId>
<version>1.0</version>
<packaging>pom</packaging>
<name>platform-parent</name>
<modules>
<module>support/proj3-service</module>
<module>core/proj1-service</module>
<module>core/proj2-service</module>
</modules>
proj1/pom.xml如下,
<artifactId>proj1</artifactId>
<version>1.0</version>
<packaging>jar</packaging>
<parent>
<groupId>com.mycompany.abc</groupId>
<artifactId>platform</artifactId>
<version>1.0</version>
<relativePath>../../pom.xml</relativePath>
</parent>
proj2/pom.xml如下,
<artifactId>proj2</artifactId>
<version>1.0</version>
<packaging>jar</packaging>
<parent>
<groupId>com.mycompany.abc</groupId>
<artifactId>platform</artifactId>
<version>1.0</version>
<relativePath>../../pom.xml</relativePath>
</parent>
现在,在 proj3/pom.xml 中,我将 proj1 和 proj2 添加为依赖项,
<artifactId>proj3</artifactId>
<version>1.0</version>
<packaging>jar</packaging>
<parent>
<groupId>com.mycompany.abc</groupId>
<artifactId>platform</artifactId>
<version>1.0</version>
<relativePath>../../pom.xml</relativePath>
</parent>
<dependencies>
<dependency>
<groupId>com.mycompany.abc</groupId>
<artifactId>proj1</artifactId>
<version>1.0</version>
</dependency>
<dependency>
<groupId>com.mycompany.abc</groupId>
<artifactId>proj2</artifactId>
<version>1.0</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
...
</plugin>
</plugins>
</build>
项目 3 中的插件想要查询属于 proj1 和 proj2 的类。
根据插件类加载器文档, 请注意,插件类加载器既不包含当前项目的依赖项,也不包含其构建输出。 当一个构建插件被执行时,线程的上下文类加载器被设置为插件类加载器。
有没有办法让插件类加载器知道其他模块?
【问题讨论】:
-
你能发布完整的错误输出吗...
-
@khmarbaise 已编辑
-
您应该更深入地了解错误消息中提到的模块:
on project docs-generation: Compilation failure at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:212)...除此之外。这不是完整的错误输出...还有更多...提供了很好的提示.. -
@khmarbaise 感谢这里的提示。我非常关注我设置多模块项目的方式问题。我已经更新了问题。
-
要么你没有问清楚你的问题(由于对你真正的问题的误解?)和/或我错过了一些东西,但你试图实现的目标在 maven 中似乎是非常基本的(一个 maven具有多个模块的项目,其中一个依赖于其他模块)。此外,我不明白您为什么将后缀
-service添加到您的模块中,这对我来说没有多大意义,并且可能是根本原因之一。
标签: java maven multi-module