【问题标题】:Maven ignoring provided scopeMaven忽略提供的范围
【发布时间】:2011-03-24 04:55:24
【问题描述】:

我有一个带有许多 EJB 依赖项的 EAR。其中 2 个对 glassfish-embedded-all jar 提供了范围依赖。但是,当我在本地机器上安装 mvn 或通过 hudson 上的 maven 构建应用程序时,耳朵总是包含 glassfish-embedded-all jar。

例如提供依赖的 DataAccess-ejb

<dependency>
     <groupId>org.glassfish.extras</groupId>
     <artifactId>glassfish-embedded-all</artifactId>
     <version>3.0</version>
     <scope>provided</scope>
</dependency>

具有 ejb 依赖的应用程序耳

<dependency>
     <groupId>com.xxx.yyy</groupId>
     <artifactId>DataAccess-ejb</artifactId>
     <version>1.0-SNAPSHOT</version>
     <type>ejb</type>
</dependency>

任何想法我做错了什么或可能的建议?

干杯,

詹姆斯

【问题讨论】:

    标签: maven-2 jakarta-ee ejb-3.0


    【解决方案1】:

    尝试使用mvn dependency:tree 来分析包含glassfish-embedded-all.jar 在内的工件,您可能会忽略某些东西。 Maven 不会包含未声明为直接依赖和/或通过传递依赖继承的工件。

    您也可以发出 mvn dependency:analyze-only 命令来进一步清理那些您并不真正需要的依赖项。

    【讨论】:

      【解决方案2】:

      带有provided scope are not transitive 的依赖关系,所以你没有得到它,必须有别的东西。从 ear 模块运行 mvn dependency:tree

      但实际上,我真的很想知道您为什么使用provided 范围,我认为test 范围可能更合适。顺便说一句,我建议使用 GF 3.0.1:

      <dependency>
        <groupId>org.glassfish.extras</groupId>
        <artifactId>glassfish-embedded-all</artifactId>
        <version>3.0.1</version>
        <scope>test</scope>
      </dependency>
      

      【讨论】:

        猜你喜欢
        • 2014-07-13
        • 2011-05-31
        • 2015-06-05
        • 1970-01-01
        • 2018-05-19
        • 1970-01-01
        • 2017-07-06
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多