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

rpppsulh  于 12个月前  发布在  Maven
关注(0)|答案(3)|浏览(183)

在构建我们的项目时,我遇到了一个奇怪的问题。这个问题可能归结为对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上,它的构建过程不同于任何其他笔记本电脑。只需在本地repo中将版本添加到jaxws-rt pom中就解决了这个问题。我相信,当我发现为什么jenkins能够在没有警告的情况下构建它时,我将能够修复笔记本电脑上的错误。
到目前为止我们调查了什么

  • 似乎它不是maven版本特定的
  • 似乎不是特定于操作系统
  • 我不相信这可能是由不同的java版本引起的(只是尝试)
  • 在jenkins中没有endoresed文件
  • 下载的依赖项在内容方面是相同的(jenkins与笔记本电脑)

注意:由于pom已经很复杂,因此在短期内无法重写。

j8yoct9x

j8yoct9x1#

在我的例子中,JAVA_HOME环境变量指向JRE。我将它设置为我的JDK安装文件夹(在我的系统中是: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>

字符串
在这一变化之后,一切都很好。

hec6srdp

hec6srdp2#

要找出为什么在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命令行选项覆盖每个设置文件。

m1m5dgzv

m1m5dgzv3#

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

相关问题