gpt4 book ai didi

java - Maven 模块看不到可靠的子模块

转载 作者:行者123 更新时间:2023-12-02 11:41:17 24 4
gpt4 key购买 nike

我有以下项目结构:

Root:  
module_1
module_2
shared

module_1 依赖于共享模块。

因此根pom.xml看起来像这样:

<groupId>root</groupId>
<artifactId>root</artifactId>
<version>0.0.1</version>
<packaging>pom</packaging>
<name>root</name>
<modules>
<module>module_1</module>
<module>module_2</module>
<module>shared</module>
</modules>

module_1 pom.xml:

<parent>
<groupId>root</groupId>
<artifactId>root</artifactId>
<version>0.0.1</version>
</parent>
...
<dependencies>
<dependency>
<groupId>shared</groupId>
<artifactId>shared</artifactId>
<version>0.0.1-SNAPSHOT</version>
<scope>compile</scope>
<type>pom</type>
</dependency>
</dependencies>

共享pom.xml

<parent>
<groupId>root</groupId>
<artifactId>root</artifactId>
<version>0.0.1</version>
</parent>
<artifactId>shared</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>pom</packaging>
<name>shared</name>
<description>shared</description>

但是当我尝试构建根项目 maven 输出编译错误时,module_1 看不到共享模块中的类:

[ERROR] Some_class_from module_1 cannot find symbol 
[ERROR] symbol: Some_class_from_shared_module

我该如何解决这个问题?

最佳答案

module1shared 的依赖类型为pom ...

<dependency>
<groupId>shared</groupId>
<artifactId>shared</artifactId>
<version>0.0.1-SNAPSHOT</version>
<scope>compile</scope>
<type>pom</type>
</dependency>

这意味着 module1将继承 shared 的依赖项但它无法访问 shared 内的任何类.

通常<type>pom</type><scope>import</scope>相关联因为这会包含 shared 的任何依赖项在module1 。在您的情况下,您需要的不仅仅是 shared 传递提供的依赖项。 ,你想要shared的类(class)也如此,因此删除...

<type>pom</type>

...这将导致依赖项使用默认类型(jar),然后允许 module1依赖于(a)shared的依赖关系和 (b) shared的类(class)。

关于java - Maven 模块看不到可靠的子模块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48523965/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com