Maven 忽略提供的范围

Jam*_*mes 5 maven-2 ejb-3.0 jakarta-ee

我有一个带有许多 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>
Run Code Online (Sandbox Code Playgroud)

具有 ejb 依赖性的应用程序 Ear

<dependency>
     <groupId>com.xxx.yyy</groupId>
     <artifactId>DataAccess-ejb</artifactId>
     <version>1.0-SNAPSHOT</version>
     <type>ejb</type>
</dependency>
Run Code Online (Sandbox Code Playgroud)

有什么想法我做错了什么或可能的建议吗?

干杯,

詹姆士

Jos*_*iaz 4

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

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