我在项目的POM中指定了以下依赖项:
<dependency>
<groupId>org.jboss.client</groupId>
<artifactId>jbossall-client</artifactId>
<scope>compile</scope>
</dependency>我的项目本身必须是另一个POM的孩子。在这一条中,定义如下:
<dependency>
<groupId>org.jboss.client</groupId>
<artifactId>jbossall-client</artifactId>
<version>4.2.3.GA</version>
<scope>provided</scope>
<type>jar</type>
</dependency>当我现在组装我的程序时,似乎父POM的“提供”范围覆盖了我的项目的范围,因为jbossall-client.jar不包括在我的程序集中。虽然这在我看来是不合逻辑的,但也许是这一特征在这里生效了。
您知道如何在不接触父POM的情况下将依赖项包含在我的程序集中吗?
编辑:输出的mvn dependency-tree (更新!):
[dependency:tree]
com.myproject:myproject:jar:0.0.1-SNAPSHOT
+- com.myproject-commons:jar:1.0-SNAPSHOT:compile
| +- commons-logging:commons-logging:jar:1.0.4:compile
| +- log4j:log4j:jar:1.2.14:compile
| +- sv.seucc:seucc-unicode:jar:1.0.1.5:compile
| +- commons-lang:commons-lang:jar:2.2:compile
| +- com.thoughtworks.xstream:xstream:jar:1.2.1:compile
| \- xpp3:xpp3_min:jar:1.1.3.4.O:compile
+- com.myproject-interfaces2:jar:1.0-SNAPSHOT:compile
| \- com.myproject-service-commons:jar:1.0-SNAPSHOT:compile
+- org.springframework:spring:jar:2.5.6:compile
+- commons-io:commons-io:jar:1.3.1:compile
+- com.myproject-modules:ejb:1.0-SNAPSHOT:compile
\- org.jboss.client:jbossall-client:jar:4.2.3.GA:compile编辑2:这里是程序集XML的依赖部分。
<dependencySets>
<dependencySet>
<outputDirectory>lib</outputDirectory>
</dependencySet>
</dependencySets>编辑3:这里是我获得的程序集的lib文件夹中的文件。
commons-io-1.3.1.jar
commons-lang-2.2.jar
commons-logging-1.0.4.jar
log4j-1.2.14.jar
seucc-unicode-1.0.1.5.jar
spring-2.5.6.jar
xpp3_min-1.1.3.4.O.jar
xstream-1.2.1.jar
myproject-commons-1.0-SNAPSHOT.jar
myproject-modules-1.0-SNAPSHOT.jar
myproject-service-commons-1.0-SNAPSHOT.jar
myproject-interfaces2-1.0-SNAPSHOT.jar
myproject-0.0.1-SNAPSHOT.jar编辑4:对于这个问题的答案,请参阅正确答案的最后注释。
发布于 2010-06-09 10:00:46
这两个依赖项都没有相同的groupId,所以这里没有任何东西被覆盖,它们被视为不同的工件。但是我想知道在您的子pom中是如何工作的(因为jbossall-client没有任何版本)。你们有dependencyManagement区吗?
无论如何,要“调试”这类问题,请在您的子项目中使用mvn dependency:tree (如果需要更多帮助,可以发布输出)。
更新:以上是我对最初问题的回答,并没有反映问题的当前状态。
为了清晰起见,最终解决方案的关键是在程序集描述符的<scope>compile</scope>元素中声明一个runtime(默认为runtime)。有关详细信息,请参阅评论。
另请参阅
发布于 2011-03-28 14:02:42
我们有同样的问题,并通过添加第二个dependencySet的作用域,但这是唯一有效的升级到2.2.1版本的组装插件。
https://stackoverflow.com/questions/3004459
复制相似问题