1

我在应用服务器上部署了多个应用程序,并且都使用几乎相同的 JAR 文件集。这些应用程序被创建为 Maven 项目。我想在我的应用服务器上部署这些应用程序,而不必将它们与任何 JAR 文件捆绑在一起。相反,我会将所有这些 JAR 文件添加到应用服务器上,分别添加到其自己的 lib 目录或这些应用程序可以使用的其他目录中。

在这种情况下,我如何配置我的 Maven 项目,以便它使用工件来编译我的项目,但是当它创建一个 WAR 文件时,它会排除所有这些。

4

2 回答 2

3

这就是provided范围的意义所在。来自Mavenprovided文档:

这很像 compile,但表明您希望 JDK 或容器在运行时提供依赖项。例如,在为 Java 企业版构建 Web 应用程序时,您可以将 Servlet API 和相关 Java EE API 的依赖设置为提供的范围,因为 Web 容器提供了这些类。此范围仅在编译和测试类路径上可用,并且不可传递。

于 2012-06-15T15:18:54.600 回答
0

您是否使用 maven-assembly-plugin 创建 WAR 文件?如果是这样,您可以排除正在复制的依赖项。

于 2012-06-15T15:14:20.397 回答