未命名的模块从两者读取包javax.websocket

时间:2019-11-01 19:51:35

标签: java xml maven

当我需要org.eclipse.jetty.server并将其导入我的班级时出现错误。 import org.eclipse.jetty.server.Server;

未命名的模块从javax.websocket.api和javax.websocket.client.api都读取包javax.websocket。我尝试删除pom.xml中的依赖项。这也行不通。

我的项目中总共有3个模块: -seabattleclient -海上战斗机 -seabattlelogin

在我的项目结构下面: https://imgur.com/a/YMFNbwu

我服务器中的pom.xml文件

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xmlns="http://maven.apache.org/POM/4.0.0"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <parent>
        <artifactId>SeaBattleStart</artifactId>
        <groupId>nl.fhict.s3</groupId>
        <version>1.0-SNAPSHOT</version>
    </parent>
    <modelVersion>4.0.0</modelVersion>

    <artifactId>seabattleserver</artifactId>
    <dependencies>
        <dependency>
            <groupId>org.eclipse.jetty.websocket</groupId>
            <artifactId>javax-websocket-server-impl</artifactId>
            <version>9.4.15.v20190215</version>
        </dependency>

        <dependency>
            <groupId>com.google.code.gson</groupId>
            <artifactId>gson</artifactId>
            <version>2.8.5</version>
        </dependency>


    </dependencies>
</project>

我的登录名中的pom文件

<?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>SeaBattleStart</artifactId>
        <groupId>nl.fhict.s3</groupId>
        <version>1.0-SNAPSHOT</version>
    </parent>
    <modelVersion>4.0.0</modelVersion>

    <artifactId>SeaBattleLogin</artifactId>
<dependencies>

    <dependency>
        <groupId>org.apache.httpcomponents</groupId>
        <artifactId>httpclient</artifactId>
        <version>4.5</version>
    </dependency>


</dependencies>

</project>

我客户的pom文件

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xmlns="http://maven.apache.org/POM/4.0.0"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <parent>
        <artifactId>SeaBattleStart</artifactId>
        <groupId>nl.fhict.s3</groupId>
        <version>1.0-SNAPSHOT</version>
    </parent>
    <modelVersion>4.0.0</modelVersion>

    <properties>
        <openfxVersion>11.0.2</openfxVersion>
        <junit-jupiter-api.version>5.3.2</junit-jupiter-api.version>
        <logback-classic.version>1.2.3</logback-classic.version>
    </properties>

    <artifactId>seabattleclient</artifactId>
    <dependencies>
        <!-- (open)Java FX -->
        <dependency>
            <groupId>org.openjfx</groupId>
            <artifactId>javafx-base</artifactId>
            <version>${openfxVersion}</version>
        </dependency>
        <dependency>
            <groupId>org.openjfx</groupId>
            <artifactId>javafx-controls</artifactId>
            <version>${openfxVersion}</version>
        </dependency>
        <dependency>
            <groupId>org.openjfx</groupId>
            <artifactId>javafx-graphics</artifactId>
            <version>${openfxVersion}</version>
        </dependency>

        <!-- Logback -->
        <!-- https://mvnrepository.com/artifact/ch.qos.logback/logback-classic -->
        <dependency>
            <groupId>ch.qos.logback</groupId>
            <artifactId>logback-classic</artifactId>
            <version>${logback-classic.version}</version>
        </dependency>


        <!-- JUnit 5 -->
        <!-- https://mvnrepository.com/artifact/org.junit.jupiter/junit-jupiter-api -->
        <dependency>
            <groupId>org.junit.jupiter</groupId>
            <artifactId>junit-jupiter-api</artifactId>
            <version>${junit-jupiter-api.version}</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.junit.jupiter</groupId>
            <artifactId>junit-jupiter-engine</artifactId>
            <version>${junit-jupiter-api.version}</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>nl.fhict.s3</groupId>
            <artifactId>SeaBattleLogin</artifactId>
            <version>1.0-SNAPSHOT</version>
            <scope>compile</scope>
        </dependency>



    </dependencies></project>

我的模块信息.java

module seabattleserver {
    requires org.eclipse.jetty.server;
}

如果删除了需求,则无法使用项目所需的东西。所以我需要另一个解决方案。

1 个答案:

答案 0 :(得分:0)

This question pretty much covers this problem.

您可以仅排除javax.websocket-client-api。

    <dependency>
        <groupId>org.eclipse.jetty.websocket</groupId>
        <artifactId>javax-websocket-server-impl</artifactId>
        <version>9.4.15.v20190215</version>
        <exclusions>
            <exclusion>
                <groupId>javax.websocket</groupId>
                <artifactId>javax.websocket-client-api</artifactId>
            </exclusion>
        </exclusions>
    </dependency>