我正在构建针对Nexus存储库管理器中托管的Apache的Maven存储库中的各种Lucene和Solr Maven工件。工件是版本4.0-SNAPSHOT
并且每天更新,定期删除旧工件。
我想知道如何将工件挂钩到特定日期,因此每当Maven客户端要求solr-core 4.0-SNAPSHOT
时,即使上游有较新版本,它也会获得相同的版本。
我还想知道如何明确更新到最新的4.0-SNAPSHOT
,但仍保留以前下载的所有版本。
具体来说,“Apache Snapshots”存储库是安装Nexus时设置的默认存储库。
答案 0 :(得分:3)
您可以使用versions maven plugin固定到特定版本的SNAPSHOT,只有SNAPSHOT在相应的存储库中可用时才有效。但我建议使用存储库管理器并将SNAPSHOT放入本地存储库并改为使用它们。还有一种方法是获得一个特定的SNAPSHOT,并为它做出内部释放,例如4.0.1-INTERNAL,并根据它提供更长的可用时间。
答案 1 :(得分:3)
将快照部署到存储库服务器时,每个新部署实际上都部署为带有迭代器编号的带时间戳的版本。如果要使用特定版本,只需使用快照的时间戳版本而不是-SNAPSHOT。
您可以将此工件用作
<groupId>org.apache.maven.artifact</groupId>
<artifactId>maven-artifact</artifactId>
<version>3.0-alpha-2-SNAPSHOT</version>
每次部署新快照时都会更改它,或者您可以使用
<groupId>org.apache.maven.artifact</groupId>
<artifactId>maven-artifact</artifactId>
<version>3.0-alpha-2-20090214.020928-1</version>
会保持不变。但请记住,快照存储库本质上不是静态的,并且这些工件可能会完全消失。只有在使用可以控制的内部存储库服务器时才这样做,从而确保这些快照不会消失在您身上。
另一种方法是实际删除一个版本并使用它。