Maven更新有关本地和远程快照的策略快照

时间:2017-02-23 01:18:18

标签: maven

如果本地和远程快照不同,我只想明白maven中快照功能的行为。例如,假设我有项目A,项目B是B取决于A,我在本地更改A和B.但是其他开发人员也正在改变B并将项目部署到托管人工制品的存储库。

如果我在本地更改B,我怎么能确保项目A将使用本地B而不是远程B,即使我的本地B比远程B更旧?所以基本上我想确保如果我对依赖项目进行了任何本地更改,我希望任何将已修改项目作为依赖项的项目使用本地修改版本而不是远程版本。

我该怎么做?是否有updatePolicy执行此操作?

1 个答案:

答案 0 :(得分:1)

在使用快照构建时,Maven会将本地POM的时间戳与遥控器进行比较。

您可以使用值永远 updatePolicy 进行控制,Maven永远不会尝试检索其他版本。只有当它不存在于本地时才会这样做

您需要在maven Settings.xml中设置它,如下所示

<repositories>
        <repository>
          <id>exampleSnapshots</id>
          <name>example Snapshots</name>
          <url>http://example.org/maven2</url>
          <layout>default</layout>
          <snapshots>
            <enabled>true</enabled>
            <updatePolicy>never</updatePolicy>
               ......
          </snapshots>
        </repository>
      </repositories>

其他选项包括alwaysdaily(默认),interval:X(其中X是以分钟为单位的整数)。

maven Documentation

中查找更多信息