jdk 11 - пакет javax.xml.bind.annotation объявлен в неназванном модуле, но модуль javax.xml.bind.annotation не читает его - PullRequest
0 голосов
/ 12 октября 2018

Я помечаю все остальные темы (возможно, работаю для jdk 10) и все еще не могу запустить javax.xml.bind на jdk 11 .

Моя зависимость:

    <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, у меня появляется ошибка:

[ОШИБКА] ... ExceptionType.java:[6,22] пакет javax.xml.bind.annotation не отображается (пакет javax.xml.bind.annotation объявляется в неназванном модуле, но модуль javax.xml.bind.annotation не читает его)

кто-нибудь запускает его на jdk 11?

edit: 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 (Ultimate Edition), сборка # IU-182.4505.22, построена 18 сентября 2018 года, JRE: 1.8.0_152-release-1248-b8 amd64 JVM: Виртуальная 64-битная серверная виртуальная машина OpenJDK от JetBrains sro Maven: 3.5.4

Кажется, что это полная ошибка.

1 Ответ

0 голосов
/ 15 ноября 2018

Нам удалось найти причину проблемы.В настоящее время у меня есть проект 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" версия = "4">

Во время разработки имена модулей были изменены, а затем возникла идея, следует ли удалять модули (поскольку ide не распознало:

тип= "JLP_NATIVE_MICROSERVICE_IMPLEMENTATION_MODULE_TYPE").Хотя выбранной опции не было, то ide автоматически выполнило:

  • , выбрав модуль maven в качестве игнорируемого
  • , заменив в файле iml из: '<' module org.jetbrains.idea.maven.project.По вышеуказанной причине проект не правильно прочитал артефакты Maven.После объединения имен и пометки проекта как не проигнорированного, он работает правильно.Проблема не связана с Java-пакетами </p>
...