【问题标题】:Combining output of maven modules and parent结合maven模块和父模块的输出
【发布时间】:2014-04-14 06:42:34
【问题描述】:

我的项目由 Maven 模块和一个父模块组成。每个模块都有自己的 xml 资源。 我想将每个模块的输出目录更改为父模块的目录。所有资源和类文件都将转到父模块的输出目录。 我将每个子模块的输出目录更改为父模块的输出目录,如下所示:

<build>
       <outputDirectory>../target/classes</outputDirectory>
</build>

问题:

  1. 当我使用 eclipse clean 清理父模块时,它不会将子模块的输出复制到父模块的输出目录,因为我无法通过 eclipse 项目属性将子模块的输出文件夹更改为父模块的输出文件夹。
  2. 当我 mvn clean install 时,它会将最后一个构建子模块的输出复制到目标目录,因为 mvn clean 是为每个子模块执行的,它会清理以前构建模块的输出。
  3. 我想为所有模块创建一个 jar,可以吗?
  4. 如何合并父模块和子模块的所有输出?

【问题讨论】:

    标签: java maven multi-module


    【解决方案1】:

    请不要这样做,这完全违反了所有规则。 它也不起作用,因为模块是一个接一个地处理的。

    使用不同模块的原因是为了将它们清楚地分开。混合输出文件夹会破坏该目标。

    • 将您的模块分开
    • 创建一个单独的模块,将使用 maven-assembly-plugin 或 maven-shade-plugin 的所有其他模块收集到单个目标 jar 中。

    再说一次:

    Maven 项目应该永远,永远写在他们项目的文件夹之外!

    【讨论】:

    • 正如你所说,我使用了 maven-assembly-plugin,它似乎解决了我的问题。我将所有模块收集到一个目标 jar 中。本教程帮助了我:rombertw.wordpress.com/2010/05/14/… 我的问题是我有父模块和子模块的资源。当我右键单击并执行子模块(作为应用程序运行)时,它看不到父模块的资源。当我将它们收集到一个罐子中时,我也收集了资源,这没有问题。但我不想总是执行 jar,因为它更容易右键单击并作为应用程序运行
    • 你的父项目不应该有资源。父项目是没有内容的 POM 项目。这可以解释你的问题。
    • 我有公共资源,我把它们放到父模块中。我应该如何解决这个问题?
    • 把你的资源放到一个单独的模块中,让其他模块依赖它。
    猜你喜欢
    • 1970-01-01
    • 2013-02-23
    • 1970-01-01
    • 2010-12-31
    • 2019-09-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-03-28
    相关资源
    最近更新 更多