使用settings.xml将jar文件下载到本地.m2存储库

时间:2009-12-16 13:00:00

标签: maven-2

我有一个远程存储库,可以在5小时内更新jar,而不会更改版本号.Pom文件无法更新,因为版本相同。每次我需要手动删除。有什么方法我可以得到使用settings.xml的最新文件。

3 个答案:

答案 0 :(得分:0)

您是否控制此远程存储库?如果是,则使用“-SNAPSHOT”版本号。

或者要求控制存储库的人员执行此操作。这是告诉Maven依赖性处于不稳定状态的正确方法。

如果您不能/不愿意这样做,请自己编写一个批处理/ shell脚本来调用Maven,它会事先删除该文件。

答案 1 :(得分:0)

  

我有一个远程存储库,可以在5小时内更新jar,而不会更改版本号。由于版本相同,Pom文件无法更新。每次我需要手动删除。有什么办法可以使用settings.xml获取最新文件。

不,没有办法实现这一目标。一旦下载了具有固定版本(与SNAPSHOT相对)的工件,除非您从本地存储库中删除它,否则不会再次下载它。实际上,重新释放jar而不更改其固定版本号是 EVIL 的做法,必须避免。这不是maven的工作原理,在这样做的时候,不可能预测人们真正使用的是哪个版本(没有要求他们明确地从他们的本地存储库中删除jar这是一种非常弱的做法),这将导致不可预测的结果。

处理频繁发布的正确方法是更改​​版本号(并相应地更新POM)或使用SNAPSHOT版本,这是开发过程中使用的常用方法。根据定义,如果远程存储库中提供了更新的版本,则将下载SNAPSHOT版本。这就是您正在寻找的,这是管理这种情况的主要方式。有关SNAPSHOT的更多详细信息,请参阅9.3.1.2. SNAPSHOT VersionsMaven: The Definitive Guide一章。

答案 2 :(得分:0)

您可以为 settings.xml 中的存储库将元素 updatePolicy 设置为始终

<profiles>
  <profile>
    <id>default</id>
    <repositories>
      <repository>
        <releases>
          <enabled>true</enabled>
        </releases>
        <snapshots>
          <enabled>true</enabled>
          <updatePolicy>always</updatePolicy>
        </snapshots>
        <id>snapshots.jboss.org</id>
        <name>Snapshot JBoss Repository for Maven</name>
        <url>http://snapshots.jboss.org/maven2/</url>
        <layout>default</layout>
      </repository>
    </repositories>
  </profile>
</profiles>