【发布时间】:2014-10-15 14:53:06
【问题描述】:
如何使用 maven 依赖库而不是 Jboss 库?
我的 pom.xml 文件中有以下依赖项:
<properties>
<jsf.version>2.2.8-02</jsf.version>
</properties>
...
<dependencies>
<dependency>
<groupId>com.sun.faces</groupId>
<artifactId>jsf-api</artifactId>
<version>${jsf.version}</version>
</dependency>
<dependency>
<groupId>com.sun.faces</groupId>
<artifactId>jsf-impl</artifactId>
<version>${jsf.version}</version>
</dependency>
</dependencies>
但是当我启动 Jboss AS 时,我收到以下消息:
09:49:57,000 INFO [javax.enterprise.resource.webcontainer.jsf.config](MSC 服务线程 1-4)为上下文“”初始化 Mojarra 2.2.6-jbossorg-4 20140501-1134
我认为 Jboss 正在使用它自己的 JSF 库而不是 maven 库
使用 Jboss AS 7.1.1 和 Wildfly 8.1.0 最终版本会发生同样的事情
【问题讨论】:
-
没有 JSF maven 库。您所拥有的是您的容器(JBoss、Wildfly)确实已经提供了一个您通常不应该更改的 JSF 实现。所以你不应该在你的依赖中添加一个实现或者定义一个
<scope>provided</scope> -
@khmarbaise 为什么我应该使用提供的?它有什么作用?
-
Provided 会将给定的依赖项打包到您的 war/ear 文件中,因为它是由目标环境提供的。