在非tycho发布期间,Maven会检查正在构建的项目中是否存在快照依赖项。
对于使用Tycho构建的E4项目,有没有办法做同样的事情?
答案 0 :(得分:1)
p2存储库没有快照和非快照工件的(正式)概念。从技术上讲,只要不通过pomDependencies=consider使用Maven存储库中的SNAPSHOT工件,就不会在Tycho构建中拥有快照依赖项。后者可以采用与Maven相同的方式防止,即通过控制settings.xml中的Maven存储库(参见例如this other answer)。
但可能这不是你想要的。您可能希望确保不引用最终会消失的构件,并使构建不可重现。为此,您必须检查引用的p2存储库的保留策略,并确保仅引用“永久”保留的p2存储库。 (例如:Retention policy of the Eclipse project p2 repositories。)
如果保留策略不够好(或者您不相信提供商实际坚持它们),则需要存储引用的p2存储库的副本。例如,您可以将p2存储库下载为zip(或镜像存储库并自行压缩),将其部署到Nexus OSS并通过Unzip Plugin从您的构建中访问它。 (免责声明:Unzip插件是Tycho项目的产品,我是其中的一名提交者。)
答案 1 :(得分:0)
的存储库强> 的: 版本,快照:这些是针对每种工件,版本或快照的策略。通过这两个集合,POM可以在单个存储库中独立于另一个类型更改每种类型的策略。例如,可以决定仅启用快照下载,可能用于开发目的。 已启用:对于是否为相应类型(版本或快照)启用此存储库,为true还是false。 updatePolicy:此元素指定更新应尝试发生的频率。 Maven会将本地POM的时间戳(存储在存储库的maven-metadata文件中)与远程数据进行比较。选项包括:always,daily(默认),interval:X(其中X是以分钟为单位的整数)或从不。 checksumPolicy:当Maven将文件部署到存储库时,它还会部署相应的校验和文件。您可以选择忽略,失败或警告缺少或不正确的校验和。 布局:在上面的存储库描述中,有人提到它们都遵循一个共同的布局。这大多是正确的。 Maven 2具有其存储库的默认布局;但是,Maven 1.x有不同的布局。使用此元素指定它是默认还是遗留。
我认为您所接受的设置可以接近以下内容。
<repository>
<id>my-repo</id>
<name>My Repo</name>
<url>http://my.repo.org</url>
<snapshots>
<enabled>false</enabled>
<updatePolicy>never</updatePolicy>
</snapshots>
</repository>