在构建项目期间,我面临着一个奇怪的问题。问题可能归结为对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即可解决此问题。我相信,当我找出为什么jenkins能够在没有警告的情况下进行构建时,便可以修复笔记本电脑上的错误。
到目前为止我们调查了什么
注意:短期内不可能重写pom,因为它已经很复杂了
答案 0 :(得分:0)
要了解为什么该版本在jenkins和笔记本电脑上表现不同的原因,可以检查以下几点:
<repository>
或<mirror>
的一侧是否有不同的定义?如果设置存在某些差异,则可以在maven安装中检查以下文件:
请注意,可以分别使用 -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