com.sun.xml.ws:jaxws-rt:pom:2.2.10的POM无效

时间:2018-08-08 10:49:39

标签: java maven jenkins jax-ws maven-dependency

在构建项目期间,我面临着一个奇怪的问题。问题可能归结为对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

pom可能是错误的,如mvn dependency:tree -Xmvn 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. @

奇怪的是jaxws-rt pom没有定义上述库的版本。最大的魔力发生在我们的詹金斯上,与其他笔记本电脑不同,构建过程继续进行。只需将版本添加到本地仓库中的jaxws-rt pom即可解决此问题。我相信,当我找出为什么jenkins能够在没有警告的情况下进行构建时,便可以修复笔记本电脑上的错误。

到目前为止我们调查了什么

  • 似乎不是特定于Maven版本
  • 似乎不是特定于操作系统的
  • 不要相信它可能是由不同的Java版本引起的(只是尝试一下)
  • 詹金斯(Jenkins)中没有内含文件
  • 下载的依赖项在内容方面相同(詹金斯与笔记本电脑)

注意:短期内不可能重写pom,因为它已经很复杂了

3 个答案:

答案 0 :(得分:0)

要了解为什么该版本在jenkins和笔记本电脑上表现不同的原因,可以检查以下几点:

  • 验证双方是否使用完全相同的Maven版本。例如,您可以在jenkins中添加一个简单的“ mvn -version” 任务以输出版本详细信息。
  • 验证您的maven安装中没有特殊设置:在jenkins和Windows中执行“ mvn help:有效设置” “ mvn help:有效设置” 在笔记本电脑上,然后您可以比较这两种设置:<repository><mirror>的一侧是否有不同的定义?

如果设置存在某些差异,则可以在maven安装中检查以下文件:

  • maven安装路径中的全局设置: conf / settings.xml
  • jenkins代理的$ home中的用户设置: $ home / .m2 / settings.xml

请注意,可以分别使用 -gs -s mvn命令行选项覆盖每个设置文件。

答案 1 :(得分:0)

在我的情况下,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>

此更改之后,一切都很好。

答案 2 :(得分:0)

在我的情况下,将 JAVA_HOME 变量设置为正确的 JDK 修复了该问题,它在 maven 安装文档中明确提到 https://maven.apache.org/install.html