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

问题描述 投票:0回答:3

我在项目构建过程中遇到了奇怪的问题。问题可能归结为对 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 -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. @

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

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

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

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

java maven jenkins jax-ws maven-dependency
3个回答
4
投票

在我的例子中

JAVA_HOME
环境变量指向JRE。我将其设置到我的 JDK 安装文件夹(在我的系统上是:
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>

更改后一切都很好。


0
投票

要了解为什么构建在詹金斯和笔记本电脑上表现不同,您可以检查以下几点:

  • 验证双方使用完全相同的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 命令行选项覆盖。


0
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.