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

标签 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>


我的module-info.java

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


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

最佳答案

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>

关于java - 未命名的模块从两者读取包javax.websocket,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58665110/

相关文章:

maven - 开发和生产中的迁移迁移

java - 创建主题

php - 在两个网站之间传输 xml

xml - xsd 唯一选择器路径 : exclude specific elements

java.lang.NoClassDefFoundError : org/apache/log4j/Priority 错误

java - 如何将变量设置为 pom.xml 中的数据库密码

java - Hadoop:是否可以在映射函数中包含内存结构并聚合它们?

JAVA GWT 对话框如何添加新行字符

java - 单击按钮时修改变量/其他 Swing 对象

python - 控制搜索深度 findall Lxml