【问题标题】:Maven: download file and run command to build dependencyMaven:下载文件并运行命令来构建依赖
【发布时间】:2014-09-12 12:09:56
【问题描述】:

最近,我需要作为某些程序依赖项的项目已切换为提供补丁文件而不是实际的 jar(法律原因)。 它们包括一个小工具,可以使用您下载的新更新自动修补现有 jar。

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

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

【问题讨论】:

  • 那个没有回答我的问题。我需要在下载依赖项时运行它,否则我的 IDE 将返回错误,说它找不到依赖项
  • 您的组织是否维护本地 Maven 存储库?如果是这样,你能把这些 delta'd .jar 文件放在那里吗?
  • 你应该看看maven-patch-plugin它可能会解决你的问题。
  • 补丁插件可能会起作用。我回家后试试。它会修补 .bps 文件吗?

标签: java maven


【解决方案1】:

您可以编写一个小型 ant 任务运行该工具并使用 maven-antrun 插件从您的 maven 构建中调用此任务。

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

【讨论】:

    【解决方案2】:

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

    按照@Joe 的建议构建工件并在本地安装它是一种优雅的解决方案,可以从我的角度解决您的问题。 优点是双重的:

    1. 您的 IDE 可以无缝找到丢失的工件
    2. 您可以保留该依赖项的多个版本(每个新补丁一个),从而在新补丁破坏某些东西的情况下重现以前的(工作)构建。

    如果您有一个本地存储库,那就更好了,因为这将使您的所有团队都可以使用依赖项。

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

    【讨论】:

    • 我现在正在使用它,我只是想知道是否有一种方法可以仅在 maven 需要依赖并且仅针对它需要的版本时执行此操作。这些是每晚构建的,因此它们会很快耗尽我的磁盘空间。
    猜你喜欢
    • 2015-01-16
    • 1970-01-01
    • 2014-09-24
    • 2018-09-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-05
    • 1970-01-01
    相关资源
    最近更新 更多