Maven针对本地和远程快照更新策略快照

Maven针对本地和远程快照更新策略快照,maven,Maven,如果本地和远程快照不同,我只想明确了解maven中快照功能的行为。例如,假设我有项目A,项目B是B依赖于A的,我在本地更改A和B。但是,其他开发人员也在更改B,并将项目部署到托管人工制品的存储库中 如果我在本地更改B,如何确保项目A将使用本地B而不是远程B,即使我的本地B比远程B旧?因此,基本上我希望确保,如果我对依赖项项目进行了任何本地更改,我希望任何将修改后的项目作为依赖项的项目都使用本地修改版本,而不是远程版本 我该怎么做?是否有更新策略可以做到这一点?在使用快照构建时,Maven将比较本

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

如果我在本地更改B,如何确保项目A将使用本地B而不是远程B,即使我的本地B比远程B旧?因此,基本上我希望确保,如果我对依赖项项目进行了任何本地更改,我希望任何将修改后的项目作为依赖项的项目都使用本地修改版本,而不是远程版本


我该怎么做?是否有更新策略可以做到这一点?

在使用快照构建时,Maven将比较本地POM的时间戳和远程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>

示例快照
示例快照
http://example.org/maven2
违约
真的
从未
......
其他选项包括
始终
每日
(默认值),
间隔:X
(其中X是以分钟为单位的整数)


请在

中查找更多信息,但如果我没有更新本地版本,是否有办法获取此案例的远程版本?我想,如果我在本地更改了一个项目,我会得到本地版本,如果不是,我想要最新的远程版本。Maven更新检查将基于POM的时间戳发生,当您在本地构建时(即使有本地更改),它也会更新POM时间戳,因此它会认为它是最新的。