我如何配置maven以便它使用jar进行编译,但在捆绑到war文件时排除所有这些

时间:2012-06-15 15:11:11

标签: maven

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

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

2 个答案:

答案 0 :(得分:3)

这就是provided范围的含义。来自Maven docs关于provided

  

这很像编译,但表示你期望JDK或者   容器在运行时提供依赖性。例如,何时   您可以为Java Enterprise Edition构建Web应用程序   设置对Servlet API和相关Java EE API的依赖   提供范围是因为Web容器提供了这些类。这个   scope仅在编译和测试类路径上可用,并且是   不是过渡性的。

答案 1 :(得分:0)

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