【问题标题】:Why does Maven2 check for updates of stax-ex at every build?为什么 Maven2 在每次构建时都会检查 stax-ex 的更新?
【发布时间】:2011-05-13 17:21:23
【问题描述】:

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) 中。我们有一个工件存储库作为中介。

我能做什么? (离线构建将是一个不受欢迎的解决方法。)

【问题讨论】:

    标签: maven-2 stax artifactory


    【解决方案1】:

    我也遇到了同样的问题,想追根究底!

    问题出在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 通过下载其对应的maven-metadata.xml 来不断检查最新版本的 stax-ex(即使 jaxws-rt 本身请求版本 1.2)。

    一个简单的解决方法是在 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 将不再为这个警告打扰你......

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2022-07-23
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-09-14
        相关资源
        最近更新 更多