maven依赖战争问题

时间:2013-08-20 21:22:52

标签: java maven java-ee

我想从最终的war构建中排除以下依赖项(使用mvn package / install)。

哪个范围更可取?

<dependency>
    <groupId>com.sun.faces</groupId>
    <artifactId>jsf-api</artifactId>
    <version>2.2.2</version>
    <scope>provided</scope>
</dependency>

2 个答案:

答案 0 :(得分:1)

您有2个选项,providedtestprovided也会在测试中从类路径中排除jar。如果要测试依赖于该依赖项的代码,则应使用test代替。

如果在安装后仍然在war文件中看到这种依赖关系,我们需要更多信息来调试。可能是您在不了解它的情况下不止一次地包含此依赖项。也可能是另一个依赖项是传递性的,包括这个jar,你必须使用exclude标签来删除它。

答案 1 :(得分:0)

取决于您的目标部署服务器。如果您在安装了JSF库的GlassfishJboss等应用程序服务器上进行部署,则首选scope 提供 。或者使用排除来消除目标战争的依赖性。

或者,如果要在tomcatjetty等上下文服务器上进行部署,请删除范围目标以复制库以避免依赖性问题。