【问题标题】:How extract all the jars needed for a maven project to a folder?如何将 maven 项目所需的所有 jar 提取到文件夹中?
【发布时间】:2012-04-24 08:08:18
【问题描述】:

我正在尝试对一个项目进行去mavenize。

有没有办法将这个 maven 项目所需的所有 jar 提取到一个文件夹中?

(我是 maven 的新手,所以请;提供的说明应该是虚拟模式)谢谢!

;-)

【问题讨论】:

    标签: maven jar


    【解决方案1】:

    您可以使用maven dependency plugindependency:copy-dependencies 目标来实现此目的。

    实际上,只需在您的 maven 项目上运行 mvn dependency:dependencies,您应该会在 target 文件夹下找到一个 dependencies 子文件夹,其中包含所有依赖项,包括传递的依赖项。

    【讨论】:

    • 如果你使用 Maven 3 会有一点问题。Maven 3 使用新的依赖解析机制(基于 Aether),而 maven-dependency-plugin 仍然使用旧的(来自 Maven 2)。因此,在使用插件时,您不确定分辨率是否是真实的。而且,事实上,我在将项目从 Maven 2 切换到 3 时也因为这个问题而遇到了一些问题,所以这不仅仅是假设的情况。
    • 今天在地球上是如何运行的,我猜只有上帝知道?
    【解决方案2】:

    查看maven-assembly-plugin 及其jar-with-dependencies 预定义描述符:
    http://maven.apache.org/plugins/maven-assembly-plugin/descriptor-refs.html#jar-with-dependencies

    您可以通过稍微修改它来轻松创建自己的描述符。只需设置<unpack>false</unpack><outputDirectory>/some-dir</outputDirectory>

    如果你到目前为止还没有使用过这个插件,请阅读:
    http://maven.apache.org/plugins/maven-assembly-plugin/usage.html
    了解那里的实际情况以及如何使用它。

    【讨论】:

      【解决方案3】:

      这不是 Maven 的工作方式。 Maven 具有以下先决条件:

      • 使用二进制文件安装 Maven(当然)
      • 缓存所需 JAR 并存储创建的 JAR 的 Maven 存储库。

      所以也许应该可以生成例如一个 WAR 文件,它将包含“所有需要的 JAR 文件”。

      Maven 不仅管理运行时所需的 JAR,还管理运行 Maven 所需的插件,以及 Maven 过程中所需的所有 JAR(如单元测试、覆盖率、质量检查等)。

      也许你应该让你的问题更具体一些,我也会更新我的答案。

      【讨论】:

      • 我以一种方便的方式实现了这一点:1)将此行添加到 settins.xml:C:/TEMP/repo 2)在 *.jar 中进行搜索那个文件夹。 3)将创建的jars复制到一个单独的文件夹(C:/TEMP/jars)
      • 好吧,现在C:/TEMP/jars 中的 jar 比实际需要的要多得多。例如,你有很多基本 Maven 插件需要的东西(比如编译器本身)。但是,它可能有效,因为所有需要的罐子都在那里。
      猜你喜欢
      • 1970-01-01
      • 2012-07-30
      • 1970-01-01
      • 2018-07-17
      • 2011-11-05
      • 2011-09-06
      • 2011-10-02
      • 1970-01-01
      相关资源
      最近更新 更多