Java Maven模块没有看到可靠的子模块

Java Maven模块没有看到可靠的子模块,java,maven,dependencies,multi-module,Java,Maven,Dependencies,Multi Module,我有以下项目结构: Root: module_1 module_2 shared 模块_1依赖于共享模块 因此,根pom.xml如下所示: <groupId>root</groupId> <artifactId>root</artifactId> <version>0.0.1</version> <packaging>pom</packaging> <name&

我有以下项目结构:

Root:  
   module_1   
   module_2  
   shared
模块_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>
我怎样才能解决这个问题

模块1对共享的依赖类型为pom


。。。这将导致依赖项使用默认类型jar,这将允许module1依赖于a共享的依赖项和b共享的类。

shared pom.xml中的打包可能应该是jar而不是pom。首先将共享项目设为a jar打包而不是pom…否则,依赖于它是没有意义的…它正在工作,但我想确保在根项目构建期间,共享模块也将重建。这个方法支持吗?你是说上面的答案解决了你的问题吗?现在您想问另一个问题:我如何确保在构建module1时构建共享模块?module1和shared是root的子模块,所以无论何时构建root,Maven都将确定需要构建哪些子模块并将构建它们。但是,如果您选择只构建模块1,那么Maven将不会构建共享模块1。因此,如果您的目的是确保在构建module1时构建共享模块,那么只需构建root,让Maven为您解决这个问题。
<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>
<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>
[ERROR] Some_class_from module_1 cannot find symbol 
[ERROR] symbol:   Some_class_from_shared_module
<dependency>
    <groupId>shared</groupId>
    <artifactId>shared</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <scope>compile</scope>
    <type>pom</type>
</dependency>
<type>pom</type>