POM для com.sun.xml.ws:jaxws-rt:pom:2.2.10 является недействительным

Я сталкиваюсь со странной проблемой при сборке нашего проекта. Проблема сводится, вероятно, к зависимости от jaxws-rt 2.2.10. Основная проблема - это предупреждение, которое останавливает транзитивные зависимости для распространения на наш дистрибутив.The POM for com.sun.xml.ws:jaxws-rt:pom:2.2.10 is invalid, transitive dependencies (if any) will not be available

Пом, вероятно, неправильно, как показано в выводе mvn dependency:tree -X или же mvn dependency:tree -Dverbose

[WARNING] Failed to build parent project for com.sun.xml.ws:bundles:pom:2.2.10
[WARNING] Failed to build parent project for com.sun.xml.ws:jaxws-rt:pom:2.2.10

[WARNING] The POM for com.sun.xml.ws:jaxws-rt:pom:2.2.10 is invalid, transitive dependencies (if any) will not be available: 5 problems were encountered while building the effective model for co
m.sun.xml.ws:jaxws-rt:2.2.10
[ERROR] 'dependencies.dependency.version' for javax.xml.bind:jaxb-api:jar is missing. @
[ERROR] 'dependencies.dependency.version' for com.sun.xml.bind:jaxb-core:jar is missing. @
[ERROR] 'dependencies.dependency.version' for com.sun.xml.bind:jaxb-impl:jar is missing. @
[ERROR] 'dependencies.dependency.version' for org.jvnet.staxex:stax-ex:jar is missing. @
[ERROR] 'dependencies.dependency.version' for com.sun.xml.fastinfoset:FastInfoset:jar is missing. @

Странно то, что pom jaxws-rt не определяет версии вышеупомянутых библиотек. Самая большая магия из всех происходит на наших Дженкинс, где сборка происходит в отличие от любого другого ноутбука. Простое добавление версий в jaxws-rt pom в локальном репо решает эту проблему. Я верю, что когда я узнаю, почему jenkins может построить его без предупреждения, я смогу исправить ошибки на ноутбуках.

Что мы исследовали до сих пор

  • кажется, это не конкретная версия Maven
  • кажется, это не зависит от ОС
  • не верьте, что это может быть вызвано другой версией Java (просто попытка)
  • нет никаких подтвержденных файлов в jenkins
  • загруженные зависимости одинаковы по содержанию (jenkins vs laptops)

Примечание: переписать pom в короткие сроки невозможно, так как это уже довольно сложно

3 ответа

В моем случае JAVA_HOMEпеременная среды указывает на JRE. Я установил его в свою папку установки JDK (НА моем systwm это:JAVA_HOME=C:\Programme\Java\jdk-13.0.2).

Моя вторая проблема заключалась в использовании jaxws-maven-plugin в версии 2.3.1. Я изменил его в pom.xml на2.3.3 следующим образом:

<dependency>
    <groupId>com.sun.xml.ws</groupId>
    <artifactId>jaxws-rt</artifactId>
    <version>2.3.3</version>
</dependency>

После этих изменений все было хорошо.

Чтобы выяснить, почему сборка ведет себя по-разному в jenkins и на вашем ноутбуке, вы можете проверить следующие пункты:

  • убедитесь, что вы используете точно одинаковую версию Maven с обеих сторон. Например, вы можете добавить простую задачу "mvn -version" в jenkins для вывода сведений о версии.
  • убедитесь, что в вашей установке maven нет специальных настроек: выполните "mvn help: ffective -pom" и "mvn help: ffective -settings" в jenkins и на вашем ноутбуке, и затем вы можете сравнить обе настройки: есть ли какое-то другое определение для <repository> или же <mirror> на одной стороне?

Если в настройках есть какая-то разница, вы можете проверить следующие файлы в ваших установках maven:

  • глобальные настройки в вашем пути установки maven: conf / settings.xml
  • пользовательские настройки в $home вашего агента jenkins: $home /.m2 / settings.xml

Обратите внимание, что каждый из этих файлов настроек может быть переопределен с помощью параметров командной строки -gs и -s mvn соответственно.

В моем случае установка переменной JAVA_HOME на правильный JDK устранила проблему, она четко упоминается в документации по установке maven https://maven.apache.org/install.html

Другие вопросы по тегам