如何在运行时将特定文件夹中可用的jar添加到类路径中,仅用于特定的战争:

时间:2012-04-18 09:54:25

标签: java spring web-applications spring-mvc web-application-project

我正在使用maven构建工具。

以下两个是我的意图。

1)从WEB-INF / lib文件夹中移出我的战争中的一些第三方库罐[注意:这些罐子在两个以上的战争文件(或工件)之间是通用的]

2)使war文件变小。

是否有可能将这些罐子从战争中移出并放入一个文件夹中,这些罐子只能通过需要它的战争在类路径中引用。

我已经尝试在战争文件的MANIFEST.MF的类路径中添加路径到罐子但是它没有用完。请帮帮我。

1 个答案:

答案 0 :(得分:0)

我认为有问题的jar是编译构成Web应用程序的代码所必需的。如果第三方罐子是编译所必需的,但你不想在war文件中使用它们,你有两种选择:

  1. 在< dependency>< / dependency>中第三方jar的部分,添加"< scope>提供< / scope>"。

  2. 配置maven war插件,以排除您在战争中不想要的罐子。有关详细信息,请参阅http://maven.apache.org/plugins/maven-war-plugin/examples/skinny-wars.html

  3. 如何将从战争中排除的jar文件放入Web容器的类路径中取决于您的环境。如果您使用的是ear文件,上面的Maven文档将讨论如何将jar文件包含在ear文件中。如果您不使用ear文件,则必须以自己的方式将jar放入容器的lib目录。