(在Mac上使用Maven 3.0.3和Java 7)
当我运行mvn dependency:analyze-duplicate
时maven使用版本2.1(无论我的本地仓库是否有2.8)插件和抱怨:
[ERROR] Could not find goal 'analyze-duplicate' in plugin org.apache.maven.plugins:maven-dependency-plugin:2.1 among available goals unpack-dependencies,....
当我以mvn org.apache.maven.plugins:maven-dependency-plugin:2.8:analyze
运行时,它运行正常。
我原以为,如果没有明确指定版本,maven总会回到最新版本(即使还没有在本地回购中)?
我错过了什么?谢谢大家的回复时间。
答案 0 :(得分:8)
对于某些插件,Apache Maven已经在唯一的超级pom中定义了一个默认版本,可以使用较新版本的Maven进行升级。查看当前主干:https://git-wip-us.apache.org/repos/asf?p=maven.git;a=blob_plain;f=maven-model-builder/src/main/resources/org/apache/maven/model/pom-4.0.0.xml
<pluginManagement>
<!-- NOTE: These plugins will be removed from future versions of the super POM -->
<!-- They are kept for the moment as they are very unlikely to conflict with lifecycle mappings (MNG-4453) -->
<plugins>
<plugin>
<artifactId>maven-antrun-plugin</artifactId>
<version>1.3</version>
</plugin>
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<version>2.2-beta-5</version>
</plugin>
<plugin>
<artifactId>maven-dependency-plugin</artifactId>
<version>2.8</version>
</plugin>
<plugin>
<artifactId>maven-release-plugin</artifactId>
<version>2.3.2</version>
</plugin>
</plugins>
</pluginManagement>
在Maven-3.1中,maven-dependency-plugin和maven-release-plugin都已升级。以前的版本仍使用2.1和2.0(按相同顺序)。
因此,如果您未在pom.xml
中指定版本,或者如果您没有版本,则这些是默认版本。
要查看有效的pom,请执行mvn org.apache.maven.plugins:maven-help-plugin:2.2:effective-pom
或help:effective-pom
,然后再次依赖超级pom中的版本。
答案 1 :(得分:3)