如何使用maven解压WAR和所有包含的库

时间:2017-10-04 09:03:28

标签: java maven plugins

在Maven多模块项目中,一个模块需要WAR中包含的所有类(由另一个模块生成)以及其类路径中包含的JAR的类(或者更好地说,该模块中使用的插件需要它们classpath)。

解压缩WAR并使用依赖项和资源插件将WEB-INF /类复制到目标/类(因为WAR可以作为依赖项引用)。

但是如何将WEB-INF / lib中的所有(!)JAR解压缩到目标/类?

或者更一般:是否有一个插件可以解压缩文件夹中找到的所有JAR而不引用每个JAR?

2 个答案:

答案 0 :(得分:0)

来自evgeny-goldin的maven-copy-plugin可以做到。这是一个例子:

<resource>
  <targetPath>${project.build.outputDirectory}</targetPath>
  <directory>${project.basedir}/some/dir</directory>
  <include>**/*.zip</include>
  <unpack>true</unpack>
</resource>

不幸的是,它不适用于Maven 3.0.0或更新版本且作者已经停止使用它。因此,我创建了一个fork,它再次起作用。我在我的项目中使用它并且运行良好。它不会在maven central发布,因此您必须自己构建它。

答案 1 :(得分:0)

由于我发现没有令人满意的解决方案(官方发布,与maven 3兼容,易于使用,......)我已经决定分叉插件需要额外的类并添加可能性定义其他类路径元素。

这不是很大的努力,我只需解压WAR(使用依赖插件)并将这些类路径元素指向WEB-INF / classes和WEB-INF / lib / * .jar。

感谢您的努力。