【问题标题】:maven dependency war issuemaven依赖战争问题
【发布时间】:2013-08-23 02:27:36
【问题描述】:

我想从最终的战争构建中排除以下依赖项(使用 mvn 包/安装)。

哪个范围更可取?

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

【问题讨论】:

  • 如果提供了,就提供了——有什么问题?
  • 戴夫,我仍然可以在生成的战争文件下看到它。我使用 mvn clean install
  • @techie2k 其他东西可能会传递地依赖它。
  • 你用过mvn clean吗?
  • 显示mvn dependency:tree的输出

标签: java maven jakarta-ee


【解决方案1】:

您有 2 个选项,provided 或 test。 provided 也会在您的测试中将 jar 从类路径中排除。如果你想测试依赖于那个依赖的代码,你应该改用test。

如果您在安装后仍然在您的 war 文件中看到此依赖项,我们将需要更多信息来调试。可能是您多次包含此依赖项而没有意识到这一点。也可能是另一个依赖项正在传递包含此 jar,您必须使用 exclude 标签将其删除。

【讨论】:

  • 依赖图不显示重复..反正我会分析相同的
【解决方案2】:

取决于您的目标部署服务器。如果您在安装了 JSF 库的应用程序服务器(例如 Glassfish、Jboss 等)上进行部署,则首选 scope提供。或者使用排除从你的目标战争中删除依赖。

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

【讨论】:

    猜你喜欢
    • 2016-07-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-31
    • 2017-05-23
    • 1970-01-01
    • 2012-08-08
    相关资源
    最近更新 更多