首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Maven忽略提供的作用域

Maven忽略提供的作用域
EN

Stack Overflow用户
提问于 2010-08-02 20:44:36
回答 2查看 3.9K关注 0票数 4

我对许多EJB依赖项都很熟悉。其中2个对glassfish-embedded-all jar提供了作用域依赖。但是,当我在本地机器上进行mvn安装时,或者当应用程序是通过hudson上的maven构建时,ear总是包含glassfish-embedded all jar。

例如,DataAccess-ejb和提供的依赖项

代码语言:javascript
复制
<dependency>
     <groupId>org.glassfish.extras</groupId>
     <artifactId>glassfish-embedded-all</artifactId>
     <version>3.0</version>
     <scope>provided</scope>
</dependency>

具有ejb依赖性的应用程序-ear

代码语言:javascript
复制
<dependency>
     <groupId>com.xxx.yyy</groupId>
     <artifactId>DataAccess-ejb</artifactId>
     <version>1.0-SNAPSHOT</version>
     <type>ejb</type>
</dependency>

有没有想过我做错了什么或者可能的建议?

干杯,

詹姆斯

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-08-02 20:55:38

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

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

票数 4
EN

Stack Overflow用户

发布于 2010-08-02 22:08:21

依赖于一个provided scope are not transitive,所以你不会传递性地得到它,一定有别的东西。从ear模块运行mvn dependency:tree

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

代码语言:javascript
复制
<dependency>
  <groupId>org.glassfish.extras</groupId>
  <artifactId>glassfish-embedded-all</artifactId>
  <version>3.0.1</version>
  <scope>test</scope>
</dependency>
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3387866

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档