Grails 如何使用;“唯一性”;maven发布器插件中的属性

Grails 如何使用;“唯一性”;maven发布器插件中的属性,grails,maven,grails-plugin,Grails,Maven,Grails Plugin,我有一个grails项目,maven publisher插件正在运行。将war部署到公司范围的maven存储库是很好的,但我只想在maven存储库中保留快照的最新版本 在maven项目中,我可以做到这一点 <distributionManagement> <snapshotRepository> <uniqueVersion>false</uniqueVersion> <id>snapshot.

我有一个grails项目,maven publisher插件正在运行。将war部署到公司范围的maven存储库是很好的,但我只想在maven存储库中保留快照的最新版本

在maven项目中,我可以做到这一点

 <distributionManagement>
    <snapshotRepository>
        <uniqueVersion>false</uniqueVersion>
        <id>snapshot.mycompany.com.au</id>
        <name>TVL Snapshot Repository</name>
        <url>dav:http://maven.mycompany.com.au/snapshot</url>
    </snapshotRepository>
</distributionManagement>
那没用

当我运行grails maven deploy--repository=snapshot.mycompany.com.au时,我收到了以下错误消息:

Error deploying artifact: remoteRepository doesn't support the "uniqueVersion" attribute
Have you specified a configured repository to deploy to (--repository argument) or specified distributionManagement in your POM?
当我没有使用uniqueVersion属性时,如下所示:

grails.project.dependency.distribution = {
    remoteRepository(id: "snapshot.mycompany.com.au", url: "http://maven.mycompany.com.au/snapshot")
}
它工作得很好,当然,存储库保留了部署的每个war文件的唯一版本

我的猜测是这个功能还没有在maven publisher plugin中实现,但我认为值得先和专家们核实一下,看看是否有解决办法


谢谢。

您使用的是哪种远程存储库管理器?Archiva有很多方法可以很容易地限制快照版本的数量。不确定是否只保留最新版本,因为当使用更新依赖项时,它们会自动选择可用的最新版本。但在Nexus上,您可以设置一个定时作业(比如一天一次)来修剪旧快照,您可以指定一些参数。查看管理->计划任务->任务类型:删除快照
grails.project.dependency.distribution = {
    remoteRepository(id: "snapshot.mycompany.com.au", url: "http://maven.mycompany.com.au/snapshot")
}