首页 文章

jdk 11 - 包javax.xml.bind.annotation在未命名的模块中声明,但模块javax.xml.bind.annotation不读取它

提问于
浏览
0

我红色所有其他主题(可能为jdk 10工作)仍然有问题在 jdk 11 上运行 javax.xml.bind .

My dependency:

<dependency>
        <groupId>javax.xml.bind</groupId>
        <artifactId>jaxb-api</artifactId>
        <version>2.4.0-b180830.0359</version>                   <!--  2.2.12, 2.3.1  -->
    </dependency>
    <dependency>
        <groupId>org.glassfish.jaxb</groupId>
        <artifactId>jaxb-runtime</artifactId>
        <version>2.4.0-b180830.0438</version>                   <!-- 2.3.1 -->
        <!--<scope>compile</scope>-->
        <!--<scope>runtime</scope>-->
    </dependency>
    <dependency>
        <groupId>javax.activation</groupId>
        <artifactId>javax.activation-api</artifactId>
        <version>1.2.0</version>
    </dependency>
    <dependency>
        <groupId>javax.annotation</groupId>
        <artifactId>javax.annotation-api</artifactId>
        <version>1.3.2</version>
    </dependency>

我的IDE(最新的intellij)仍然没有看到导入:

import javax.xml.bind.annotation.XmlAccessType;

我的module-info.java也看不到:

requires java.xml.bind;

当我使用maven我有一个错误:

[ERROR] ... ExceptionType.java:[6,22]包javax.xml.bind.annotation不可见(包javax.xml.bind.annotation在未命名的模块中声明,但是模块javax.xml.bind .annotation不读它)

有谁在jdk 11上运行它?

编辑:1)与Java模块系统的应用程序版本:我有类似的问题:https://youtrack.jetbrains.com/issue/IDEA-197956但我的错误消息有点不同

2)没有java模块系统的应用程序版本:Maven编译正确 . 问题是intellij没有看到我的导入:

import javax.xml.bind.JAXBContext;
import javax.xml.bind.JAXBException;
import javax.xml.bind.Marshaller;
import javax.xml.bind.Unmarshaller;

并说:无法解决符号 . 另外在文件>项目结构>模块>依赖项intellij没有添加javax.xml.bind和org.glassfish.jaxb为什么?我在pom中添加了这个:

<dependency>
        <groupId>javax.xml.bind</groupId>
        <artifactId>jaxb-api</artifactId>
        <version>2.4.0-b180830.0359</version>                   <!-- 2.2.8, 2.4.0-b180830.0359  -->
    </dependency>
    <dependency>
        <groupId>org.glassfish.jaxb</groupId>
        <artifactId>jaxb-runtime</artifactId>
        <version>2.4.0-b180830.0438</version>                   <!-- 2.3.0, 2.4.0-b180830.0438 -->
    </dependency>

JDK:openjdk11 Intellij版本:IntelliJ IDEA 2018.2.4(终极版),Build#IU-182.4505.22,构建于2018年9月18日,JRE:1.8.0_152-release-1248-b8 amd64 JVM:OpenJDK 64位服务器VM by JetBrains sro Maven:3.5.4

这似乎是一个intellij错误 .

1 回答

  • 0

    我们设法找到了问题的原因 . 在ide intellij我有一个模块maven项目,我使用JLupin平台开发工具,所以在* .iml文件中我没有行:

    '''模块org.jetbrains.idea.maven.project.MavenProjectsManager.isMavenModule =“true”type =“JAVA_MODULE”version =“4”>但我有例如:

    '<'模块org.jetbrains.idea.maven.project.MavenProjectsManager.isMavenModule =“true”type =“JLP_NATIVE_MICROSERVICE_IMPLEMENTATION_MODULE_TYPE”version =“4”>

    在开发过程中,模块的名称被更改,然后想法是否删除模块(因为ide无法识别:

    type =“JLP_NATIVE_MICROSERVICE_IMPLEMENTATION_MODULE_TYPE”) . 虽然选择的选项不是,但是ide会自动执行:

    • 选择maven模块为忽略

    • 替换iml文件中的:'<' module org.jetbrains.idea.maven.project.MavenProjectsManager.isMavenModule = "true" type = "JLP_NATIVE_MICROSERVICE_IMPLEMENTATION_MODULE_TYPE" version = "4"> to:'<' module type = "JLP_NATIVE_MICROSERVICE_IMPLEMENTATION_MODULE_TYPE" version = "4">

    由于上述原因,该项目没有正确读取maven工件 . 统一名称并将项目标记为未被忽略后,它可以正常工作 . 该问题与java包无关

相关问题