Maven war插件:pom中指定的所有依赖项是否都被添加到战争中?

时间:2015-08-20 02:55:35

标签: java maven

我在我的pom中使用maven-war-plugin来构建我的Vaadin应用程序。我的问题是,如果我在我的pom中添加了一个不必要的依赖(依赖库实际上没有在代码中使用),那么maven-war-plugin仍会将依赖关系捆绑到它生成的war文件中吗?

1 个答案:

答案 0 :(得分:2)

您的问题的答案取决于您在<dependency>标记中指定的范围。请考虑以下依赖项标记:

<dependency>
    <groupId>log4j</groupId>
    <artifactId>log4j</artifactId>
    <version>1.2.17</version>
    <scope>provided</scope>
</dependency>

provided范围告诉Maven在编译时使用log4j JAR但是从构建中排除它,因此它不会出现在WAR中。另一方面,如果您使用了compileruntime的范围,则显示在WAR中。

如果您没有指定任何<scope>,则默认值为compile,这意味着依赖出现在构建输出中。