Apache ivy取消发布任务?

时间:2013-05-26 14:19:00

标签: ivy

似乎没有常春藤:取消发布任务(例如,请参阅here)。

所以,我认为未发布的应该是在文件系统级别手动执行还是通过删除〜/ .ivy2 / local 子命令的 Ant 任务执行? (当目的是从当地的常春藤回购中取消发布时)。

2 个答案:

答案 0 :(得分:3)

我很惊讶你接受了Mark的答案,因为AFAICT它与你的用例无关,这与你的本地存储库有关 - 也就是你系统上的私有存储库。他的回答只与共享存储库有关。

有一个常春藤的用例我怀疑是非常常见的。开发人员暂时处理两个项目,其中一个项目依赖于另一个项目。当他们正在做这项工作时,他们将SNAPSHOTs从上游项目发布到他们的本地存储库,以便下游项目“看到”他们的更改。当开发人员完成此任务时,他们将更改签入源代码控制,然后想要“重新加入组”并获取上游项目的最新SNAPSHOT依赖项。此时,他们希望从其本地存储库中“取消发布”上游项目,以便他们恢复使用该组中其他开发人员的更改。

对于它的价值,请参阅2006年的this Ivy Jira issue

正如我在那里的评论中所指出的那样,从几个星期前开始,我怀疑有一些我不了解的最佳实践,这使得这一点没有实际意义。任何人吗?

答案 1 :(得分:1)

不,常春藤不支持取消发布操作。类似地Maven不支持这样的操作。

不确定我理解用例。当一个“发布”内容时,以后删除它通常是一个非常糟糕的主意...为什么?

  • 您可能会无法预料地打破依赖于您的版本的其他人的构建。
  • 存储库缓存通常假设已发布的工件永远不会更改。如果它们可能会消失,这会迫使缓存不断“拨回家”以确保它们不会变脏。

说过有反对的论据。我建议阅读以下来自sonatype的优秀博客文章: