在Maven <dependency>?</dependency> </version>中省略<version>元素是什么意思

时间:2014-10-20 15:43:22

标签: maven

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>元素是什么意思?

1 个答案:

答案 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>定义的版本会被转换为我自己的模块。