2014-09-12 65 views
1

最近,我需要作为我的一些程序的依赖项目已经切换到提供补丁文件而不是实际的jar(法律原因)。 他们包括一个小工具,用于自动为现有的罐子打补丁,并下载新的更新。Maven:下载文件并运行命令以建立依赖关系

我可以编写一个自动下载和修补文件的小程序,我需要的只是告诉maven不要下载文件,而是运行一个命令,然后使用本地回购库中的文件。

有没有办法做到这一点(也许使用自定义插件)?

+0

可能的重复[如何手动安装jar到我的本地Maven存储库?](http://stackoverflow.com/questions/1871812/how-do-i-manually-install-a-jar-to- my-local-maven-repository) – Joe 2014-09-12 12:13:08

+0

那个不回答我的问题。我需要在下载依赖时运行它,否则我的IDE将返回错误,说它找不到依赖关系 – franga2000 2014-09-12 12:19:50

+0

您的组织是否维护本地maven存储库?如果是这样,你可以把这些delta'd .jar文件放在那里吗? – orangepips 2014-09-12 12:24:22

回答

1

你可以编写一个小型的ant任务运行该工具,并使用maven-antrun插件从你的maven版本中调用这个任务。

你也可以编写你自己的maven插件,但对于这样一个simle任务,我不会推荐它。

0

您的IDE找不到依赖项的原因是它不再发布(不是您寻求显然的版本)。

构建工件并将其作为@Joe本地安装在本地,这是一个优雅的解决方案,可以从我的角度解决您的问题。 的好处是双重的:

  1. 你的IDE能够无缝地寻找失踪的假象
  2. 你可以把这种依赖性的多个版本(一个用于每个新的修补程序),从而再现以前的(工作)建立的情况下,一个新的补丁打破了一些

如果你有一个本地存储库,它甚至会更好,因为这会使所有团队都可以使用依赖关系。

当然,您仍然需要一个工具来下载新补丁,应用它们并自动将生成的工件部署到存储库。但是,将其作为一项单独的任务提供给您可以使用的工具的更多灵活性。

+0

我现在正在使用这个,我只是想知道是否有一种方法只在maven需要依赖关系并且仅仅需要它的版本时才这样做。这些都是每晚构建的,所以它们会很快耗尽我的磁盘空间。 – franga2000 2014-09-12 17:25:02