无法解析从(src/test/java)测试类包从一个子项目到另一个子项目(src/test/java)测试类的导入

问题描述 投票:0回答:1

错误:无法解析导入XXX

我在尝试从 Java 8 迁移时在 Java 11 中遇到了这个问题。

Parent Project X:
    Project A:
        Project Aa:
            src/test/java:
                MyTestA.java
            pom.xml
        pom.xml
    Project B:
        Project Ba:
            src/test/java:
                MyTestB.java
            pom.xml
        pom.xml
    pom.xml

这里我尝试从 MyTestB.java 访问 MyTestA.java

我尝试过什么:

删除

<scope>
标签。所以现在在项目 Ba
pom.xml
中,我声明了项目 A 的两个依赖项,一个带有
<type>jar</type>
,另一个带有
<type>test-jar</type>
,并且都没有声明。

在项目 A 和项目 Aa

pom.xml
中,
"maven-jar-plugin"
的执行目标应同时指定
"jar"
"test-jar"

仍然面临同样的问题..

但是我可以访问项目 Aa 的 src/main/java 包中的类

java maven dependencies java-11 cannot-find-symbol
1个回答
0
投票

工件的测试类不公开,只有

src/main
中的测试类公开。

为了实现你想要的,你可以在你的项目中添加另一个模块(比如说

Project C
),你将在两个测试类中放置你需要的公共代码。此代码将位于
src/main/java

然后您可以将此模块添加为
Project Aa
Project Ba
的测试依赖项。

Parent Project X:
    Project A:
        Project Aa:
            src/test/java:
                MyTestA.java   <== import MyCommonTestCode
            pom.xml            <== depends Project C (scope : test)
        pom.xml
    Project B:
        Project Ba:
            src/test/java:
                MyTestB.java   <== import MyCommonTestCode
            pom.xml            <== depends Project C (scope : test)
        pom.xml
    Project C:
        src/main/java:
            MyCommonTestCode.java
        pom.xml
    pom.xml
© www.soinside.com 2019 - 2024. All rights reserved.