java - 从嵌套兄弟模块导入时 Maven 编译错误

标签 java maven

我正在处理一个多模块 Maven 项目,并尝试从嵌套在父项的一个子项中的模块导入依赖类 到嵌套在其兄弟中的模块。这是项目的简化层次结构:

pom.xml (parent)
 |--A
    |--pom.xml
    |--C
       |--pom.xml
       |--src
 |--B
    |--pom.xml
    |--D
       |--pom.xml
       |--src

这是 C 模块中的一个类:

Dummy.java

package com.xyz.A.C;

import com.xyz.B.D.DummyDependency;

public class Dummy {
   public static int callDependency(int num) {
       return dummyDependency.absoluteVal(num);
   }
}

这是 D 模块中的一个类:

DummyDependency.java

package com.xyz.B.D;

public class DummyDependency {
    /**
     * Return the absolute value of a number.
     * @param num an integer
     */
     public static int absoluteVal(int num) {
         if (num > 0) {
            return num;
         } else {
            return -num;
         }
     }
 }

当我运行 mvn clean install 时,出现类似于以下内容的编译错误:enter image description here

如何在不出现编译错误的情况下访问嵌套在子模块的兄弟模块中的模块?

最佳答案

不要依赖构建顺序。如果模块 D 中的类需要使用模块 C 中的类,您应该显式依赖它:

<dependencies>
    <dependency>
        <groupId>com.xyz</groupId>
        <artifactId>A.C</artifactId>
        <version>${project.version}</version>
    </dependency>
</dependencies>

关于java - 从嵌套兄弟模块导入时 Maven 编译错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54396403/

相关文章:

java - Hibernate 时间返回类型不一致(日期与时间戳)

java - 你如何在你的java软件中包含3rdparty lib/软件?

java - maven-vault-plugin->configuration->embeddeds->embedded 中过滤器标签的含义?

java - 是否可以在站点生命周期内只运行 JaCoCo maven 插件?

git - 项目 + 每个开发人员 nbactions.xml?

java - 如何正确实现二分搜索算法来猜测 Java 中的随机 BigInteger?

java - 无法调用 StAXOMBuilder() 类中的 protected 方法

netbeans - 模块依赖项对 org.netbeans.libs.javacimpl/1 有友元依赖项,但未列为友元

java - PMD/CPD : Ignore bits of code using comments

不支持 Java 声音格式