为什么Maven2会在每次构建时检查stax-ex的更新?

时间:2010-11-22 08:48:46

标签: maven-2 stax artifactory

Maven2在每次构建时检查stax-ex的更新。它只是检查这个单一的依赖关系,所有其他依赖关系每天只更新一次。

Maven2输出:

  

artifact org.jvnet.staxex:stax-ex:从java.net检查更新

stax-ex(groupid:org.jvnet.staxex,version:1.2)作为jaxws-rt(groupid:com.sun.xml.ws,version:2.1.3)的一部分包含在内。我们有一个神器库作为中介。

我该怎么办? (离线构建将是一个不受欢迎的解决方案。)

2 个答案:

答案 0 :(得分:4)

我遇到了同样的问题,想要深究它!

问题在于pom.xml file of streambuffer(jaxws-rt的依赖关系),它没有为stax-ex指定版本。相反,它使用RELEASE,意味着最新发布的版本:

<dependency>
  <groupId>org.jvnet.staxex</groupId>
  <artifactId>stax-ex</artifactId>
  <version>RELEASE</version>
</dependency>

这迫使Maven不断检查stax-ex的最新版本(即使jaxws-rt本身请求版本1.2),也可以下载相应的maven-metadata.xml

一个简单的解决方法是在pom.xm的dependencyManagement部分强制使用stax-ex的版本:

<dependencyManagement>
  <dependencies>
    <dependency>
      <groupId>org.jvnet.staxex</groupId>
      <artifactId>stax-ex</artifactId>
      <version>1.2</version>
    </dependency>
  </dependencies>
</dependencyManagement>

然后Maven会停止打扰你这个警告...

答案 1 :(得分:2)

您的POM中的远程存储库声明似乎绕过您的企业存储库。如果您正在使用Artifactory,您可以在虚拟存储库级别的POM automatically stripped off中拥有远程存储库引用,或者在您的设置中配置mirror-any以强制执行工件解析,严格执行您的Artifactory。