繁体   English   中英

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

[英]The POM for com.sun.xml.ws:jaxws-rt:pom:2.2.10 is invalid

我在项目构建过程中遇到了奇怪的问题。 问题可能归结为对 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 没有定义上述库的版本。 最大的魔力发生在我们的 jenkins 上,构建过程与任何其他笔记本电脑不同。 只需将版本添加到本地存储库中的 jaxws-rt pom 即可解决此问题。 我相信,当我发现为什么 jenkins 能够在没有警告的情况下构建它时,我将能够修复笔记本电脑上的错误。

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

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

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

要找出构建在 jenkins 和笔记本电脑上的行为不同的原因,您可以检查以下几点:

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

如果设置有一些差异,您可以在 maven 安装中检查以下文件:

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

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

在我的例子中JAVA_HOME环境变量指向 JRE。 我将它设置为我的 JDK 安装文件夹(在我的 systwm 上是: JAVA_HOME=C:\\Programme\\Java\\jdk-13.0.2 )。

我的第二个问题是在2.3.1版本中使用jaxws-maven-plugin 我在 pom.xml 中将其更改为2.3.3如下:

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

更改后一切正常。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM