我对许多EJB依赖项都很熟悉。其中2个对glassfish-embedded-all jar提供了作用域依赖。但是,当我在本地机器上进行mvn安装时,或者当应用程序是通过hudson上的maven构建时,ear总是包含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依赖性的应用程序-ear
<dependency>
<groupId>com.xxx.yyy</groupId>
<artifactId>DataAccess-ejb</artifactId>
<version>1.0-SNAPSHOT</version>
<type>ejb</type>
</dependency>有没有想过我做错了什么或者可能的建议?
干杯,
詹姆斯
发布于 2010-08-02 20:55:38
尝试使用mvn dependency:tree来分析包括glassfish-embedded-all.jar在内的工件,您很可能忽略了一些东西。Maven不会包含未声明为直接依赖和/或通过传递依赖继承的工件。
您还可以发出和mvn dependency:analyze-only命令来进一步清理那些不真正需要的依赖项。
发布于 2010-08-02 22:08:21
依赖于一个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>https://stackoverflow.com/questions/3387866
复制相似问题