Maven 3.3.1 - 禁用时间戳

时间:2016-01-22 17:39:35

标签: java maven timestamp version pom.xml

我已经读过<unique>版本设置不再执行,并在Maven 3或更高版本中被忽略,如下所述:Non-unique Versions。按照设计,Maven 3或更高版本将始终生成带有时间戳的SNAPSHOT版本。

当我构建工件时,我有一些只产生基本SNAPSHOT版本的工件,即使我在那里多次构建它。

在构建一些工件之后,在我的本地存储库中将会有我构建的基础工件-SNAPSHOT文件,以及同一工件的一些其他时间戳版本。有基础工件:artifactID-4.0.1.0-SNAPSHOT.jar,然后在同一目录中还有其他版本附加了版本:例如伪影的4.0.1.0-快照20160120.192041-37.jar。

我不希望构建时间戳文件并将其放入我的存储库,因为它只占用磁盘空间。我想弄清楚如何只生成基础4.0.1.0-SNAPSHOT版本,没有别的。

除了编写脚本来删除这些累积的带时间戳的工件之外,有没有人想办法完全禁用它们,以便它们不会在Maven 3或更高版本中创建?

1 个答案:

答案 0 :(得分:0)

参考另一个调查表页面:

https://stackoverflow.com/questions/57951722/how-to-remove-timestamp-from-artifacts-uploaded-to-maven2-repository-on-nexus

您要执行的操作是更改Maven / Nexus的默认行为。它根据附加的时间戳和顺序号来跟踪什么是“最新”。您只需要指定“ SNAPSHOT”,它将解析最新的(caveat:默认情况下,仅@daily检查来自远程的本地更新,除非指定了-U。如​​果要清除远程(Nexus)存储库,则可以安排任务到“从存储库中删除快照”。您可以安排每小时或更长时间(通过“高级” /“ cron”计划)。它需要时间戳记和顺序号,以知道要多久才能删除多余的副本(按时间或数量)

否则,请尝试使用 uniqueVersion = false maven unique version artifact

mvn deploy:deploy-file -Durl=file:///C:/m2-repo \
                       -DrepositoryId=some.id \
                       -Dfile=your-artifact-1.0.jar \
                       -DpomFile=your-pom.xml \
                       -DuniqueVersion=false