3

似乎没有ivy:unpublish任务(例如,请参见此处)。

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

4

2 回答 2

3

我很惊讶您接受了马克的回答,因为 AFAICT 与您的用例无关,它与您的本地存储库有关 - 即您系统上的私有存储库。他的回答仅与共享存储库有关。

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

对于它的价值,另请参阅2006 年的Ivy Jira 问题

正如我在几周前的评论中指出的那样,我怀疑存在一些我不知道的最佳实践,这使得这没有实际意义。任何人?

于 2013-05-28T13:54:15.097 回答
1

不,ivy 不支持取消发布操作。同样 Maven也不支持这样的操作。

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

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

话虽如此,有反对的论据。我建议阅读以下来自 sonatype 的优秀博客文章:

于 2013-05-27T18:02:25.970 回答