xnn*_*ygn 41 java version maven
最近我用maven编写了一个项目,但我对maven pom.xml中的版本有疑问.
如果我写这样的依赖
<dependency>
<groupId>foo</groupId>
<artifactId>bar</artifactId>
<!--No version here-->
</dependency>
Run Code Online (Sandbox Code Playgroud)
版本是什么
在一个简单的项目中,没有子项目
作为另一个项目的依赖项,该项目使用foo-bar-1.0.0
Hok*_*Hok 35
问题的第1部分:如果您没有指定版本,则会有各种不同的结果:
a)你会收到错误......
Run Code Online (Sandbox Code Playgroud)[ERROR] The project org.example:myproject:0.5-SNAPSHOT (D:\src\myproject\pom.xml) has 1 error [ERROR] 'dependencies.dependency.version' for foo:bar:jar is missing. @ line 39, column 14
b)如果您已在项目的父pom的依赖关系管理中定义了版本,那么将采用该版本.项目的父项不一定是封闭的超级项目.它可以只是一组适当的定义.
c)如果项目的另一个依赖项还依赖于foo:bar,并指定了一个版本,则采用该版本.Maven 2有一种称为传递依赖的机制.如果没有明确的神器指定依赖的版本,它搜索依赖关系树,并使用最近的定义在树中.如果有两个最接近的定义,则第一个声明获胜(因为maven 2.0.9).
第2部分:我不确定,但也许传递依赖机制也可以这样工作.但是文件(据我所知)并没有提到这种情况.
但不知怎的,我觉得你的问题的第二部分没有意义:我想,为了使用工件作为依赖,你必须首先构建它.因此,在将依赖项本身用作依赖项之前,您必须知道它们的版本.
| 归档时间: |
|
| 查看次数: |
20397 次 |
| 最近记录: |