在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>
元素是什么意思?
答案 0 :(得分:0)
在<dependencyManagement>
部分,我添加了一个模块,该模块在其bar
部分中定义了<dependencyManagement>
的版本,即我的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}}如下所示:
1.2.3.RELEASE
显然,<dependencyManagement>
<dependencies>
<dependency>
<groupId>com.foo</groupId>
<artifactId>baz</artifactId>
<version>1.2.3.RELEASE</version>
</dependency>
</dependencies>
</dependencyManagement>
部分是可传递的,因此在该模块中为<dependencyManagement>
定义的版本会被转换为我自己的模块。