使用解压缩的JAR依赖项构建WAR?

时间:2012-04-30 15:52:27

标签: maven jar dependencies war unpack

我想将依赖jar中的所有.class包含到WAR classes/目录中,而不是在lib/目录中包含Jar。

我有:

my-webapp/
  ...
  WEB-INF/
    lib/
      mylib-1.0-SNAPSHOT.jar

我想:

my-webapp/
  ...
  WEB-INF/
    classes/
      mylib-1.0-SNAPSHOT (all **.class**)

我也看到 maven-dependency-plugin ,但它要求我的jar安装到本地或远程存储库中。但mylib-1.0-SNAPSHOT.jar在我的WAR之前被编译为juste,如果我打电话给mvn package,那就失败了!

那么,如何将我的jar依赖包解压到war类中呢? (如Jar的maven-shade-plugin

1 个答案:

答案 0 :(得分:0)

我想在通讯中写这个,但文字太长了。

对不起,我不明白你的观点。您有多个共享类的Web应用程序,因此您已将这些公共类打包到JAR中,现在您可以分发jar并避免代码重复。那没问题。此时,对于Web应用程序,将/ WEB-INF / classes中的类或/ WEB-INF / lib /中的类作为jar的一部分没有区别,webapp可以在这两种情况下使用这些类。

使用Maven,你应该有n个项目。一个用于您的常见jar,然后,每个webapp一个(您常见的jar是依赖)。在为您的某个webapp构建WAR之前,如果公共类已更改,则应首先安​​装(在公共存储库中)jar:mvn install。安装jar后,您可以构建WAR:mvn war:war