在pom.xml中,我有:
<dependency>
<groupId>com.foo</groupId>
<artifactId>bar</artifactId>
</dependency>没有<version>元素。但当我运行这个:
> mvn dependency:list
...
[INFO] com.foo:bar:jar:1.2.3.RELEASE:compile它给了我一个版本,即1.2.3.RELEASE。
,Maven遵循哪些规则来确定该版本?省略<version> 元素意味着什么?
发布于 2014-10-20 16:17:02
在<dependencyManagement>部分中,我包含了一个模块,该模块在其<dependencyManagement>部分中定义了bar的版本,也就是说,我的pom.xml看起来如下:
<dependencyManagement>
<dependencies>
<dependency>
<groupId>com.foo</groupId>
<artifactId>qux</artifactId>
<version>1.2.3.RELEASE</version>
</dependency>
</dependencies>
</dependencyManagement>
<dependency>
<groupId>com.foo</groupId>
<artifactId>bar</artifactId>
</dependency>而版本pom.xml中包含的模块qux的1.2.3.RELEASE如下所示:
<dependencyManagement>
<dependencies>
<dependency>
<groupId>com.foo</groupId>
<artifactId>baz</artifactId>
<version>1.2.3.RELEASE</version>
</dependency>
</dependencies>
</dependencyManagement>显然,<dependencyManagement>部分是传递的,因此在该模块中为baz定义的版本被排除到我自己的模块中。
https://stackoverflow.com/questions/26469649
复制相似问题