无法从 Java 中的不同模块解析类 (Intellij)

我通过以下方式构建了 UI 测试自动化提案:

  • (父模块)uiTestAutomation

  • (子模块)ui-utilities

  • (子模块)ui-domain

  • (子模块)ui 测试

我希望 ui-utilities 的类能够在 ui-domain 和 ui-tests 中使用,并且 ui-domain 的类也能够在 ui-tests 中使用。

我的 pom.xml 文件如下所示:

父pom.xml:

<?xml version="1.0" encoding="UTF-8"?>

<project xmlns="http://maven.apache.org/POM/4.0.0"

         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">

    <modelVersion>4.0.0</modelVersion>


    <groupId>uiTestAutomation</groupId>

    <artifactId>uiTestAutomation</artifactId>

    <packaging>pom</packaging>

    <version>1.0-SNAPSHOT</version>

    <modules>

        <module>ui-utilities</module>

        <module>ui-tests</module>

        <module>ui-domain</module>

    </modules>


</project>

ui-utilities pom.xml:


<?xml version="1.0" encoding="UTF-8"?>

<project xmlns="http://maven.apache.org/POM/4.0.0"

         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">

    <parent>

        <artifactId>uiTestAutomation</artifactId>

        <groupId>uiTestAutomation</groupId>

        <version>1.0-SNAPSHOT</version>

    </parent>

    <modelVersion>4.0.0</modelVersion>


    <artifactId>ui-utilities</artifactId>

    <groupId>ui-utilities</groupId>

    <version>1.0-SNAPSHOT</version>

    <packaging>pom</packaging>


    <build>

        <plugins>

            <plugin>

                <groupId>org.apache.maven.plugins</groupId>

                <artifactId>maven-compiler-plugin</artifactId>

                <configuration>

                    <source>8</source>

                    <target>8</target>

                </configuration>

            </plugin>

        </plugins>

    </build>


    <modules>

        <module>../ui-domain</module>

        <module>../ui-tests</module>

    </modules>

</project>

我在 ui-utilities 中有 BasePage 类,我想在 ui-domain 中创建一个名为 LoginPage 的类,它应该继承 BasePage。但是,我收到一条错误消息:

无法解析符号 BasePage

就 pom.xml 文件中的依赖关系而言,我做错了什么?


呼如林
浏览 87回答 2
2回答

拉莫斯之舞

你有一个非常不寻常的pom.xml结构,<modules>到处都指向。父级pom.xml看起来正确,但您不应该<modules>在子模块中使用,除非它们有自己的子模块。<modules>从所有子模块中删除该部分并用于<dependencies>表达模块之间的关系。不要<groupId>在子模块中进行更改,这是没有意义的。最好是他们从 继承它,并且您可以简单地在子模块中<parent>省略标签。<groupId>

DIEA

我再次尝试从头开始创建该项目。事实证明,当从父模块创建子模块时(右键单击,添加新模块),intellij 早在定义 artifactId、groupId 的第一个弹出窗口时就自动将父模块设置为子模块。pom 文件基本相同,并且 mvn clean install 对于父模块和单独的子模块都可以无缝工作。现在LoginPage可以成功扩展BasePage。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java