0

我想将我.class的所有依赖项 jar 包含到 WARclasses/目录中,而不是在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 之前编译,如果我打电话mvn package,那就失败了!

那么,如何将我的 jar 依赖项解压到 war 类中呢?(就像maven-shade-plugin罐子一样)

4

1 回答 1

0

我想把这个写在一个commnet中,但是文本太长了。

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

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

于 2012-05-01T14:29:32.130 回答