使用Maven将jar从包复制到Web项目的资源文件夹

时间:2011-04-17 23:20:52

标签: maven

我有2个Java项目是Maven项目。

一个是桌面应用程序,它有一个插件(maven-assembly-plugin),我用来将这个应用程序所需的所有依赖项“打包”到一个大jar中。打包此项目(即mvn clean package)时,它会在目标文件夹中创建两个jar文件。其中一个jar文件(childApp-0.0.1-SNAPSHOT.jar)较小,没有嵌入依赖项,另一个jar文件(childApp-0.0.1-SNAPSHOT-jar-with-dependencies.jar)较大文件中包含所有依赖项。

我的另一个项目是一个基于Web的项目,它在打包后会创建一个war文件。我需要将(childApp-0.0.1-SNAPSHOT-jar-with-dependencies.jar)文件复制到基于Web的项目的资源文件夹中。更具体地说,需要将jar文件复制到{webApp} \ WEB-INF \ classes文件夹。

如何使用Maven实现这一目标?

我已经尝试将这两个项目放在父多模块项目下,其中我首先打包了childApp,并且让webApp依赖于这个childApp。这种工作除了将(childApp-0.0.1-SNAPSHOT.jar)文件复制到{webApp} \ WEB-INF \ lib文件夹之外。我可以处理不同于我理想的文件位置但我似乎无法让Maven将其他大型(childApp-0.0.1-SNAPSHOT-jar-with-dependencies.jar)文件包含到{webApp} \ WEB-中INF \ lib文件夹。

任何想法都会非常感激。

ps:我的web-app项目本质上是一个JNLP项目。

1 个答案:

答案 0 :(得分:0)

您可以尝试为较大的jar添加额外的依赖项,如下所示:

   <dependencies>
    <dependency>
      <groupId>some.group</groupId>
      <artifactId>childApp</artifactId>
      <version>0.0.1-SNAPSHOT</version>
      <classifier>jar-with-dependencies</type>
    </dependency>
    ...
  </dependencies>