Maven 3关于build.plugins.plugin.version的警告

由于我更新到Maven 3我在每个版本得到以下警告消息:

我怎样才能摆脱这些警告?

[INFO] Scanning for projects... [WARNING] [WARNING] Some problems were encountered while building the effective model for proj:id:jar:3.1 [WARNING] 'build.plugins.plugin.version' for org.apache.maven.plugins:maven-javadoc-plugin is missing. @ line 195, column 15 [WARNING] 'build.plugins.plugin.version' for org.apache.maven.plugins:maven-compiler-plugin is missing. @ line 204, column 15 [WARNING] 'build.plugins.plugin.version' for org.apache.maven.plugins:maven-surefire-plugin is missing. @ line 227, column 15 [WARNING] 'build.plugins.plugin.version' for org.apache.maven.plugins:maven-jar-plugin is missing. @ line 215, column 15 [WARNING] 'reporting.plugins.plugin.version' for org.codehaus.mojo:jdepend-maven-plugin is missing. @ line 271, column 15 [WARNING] [WARNING] It is highly recommended to fix these problems because they threaten the stability of your build. [WARNING] [WARNING] For this reason, future Maven versions might no longer support building such malformed projects. 

在你的pom.xml文件的<plugin> <artifactId>之后添加一个<version>元素。 find以下文本:

 <plugin> <artifactId>maven-compiler-plugin</artifactId> 

添加版本标签:

 <plugin> <artifactId>maven-compiler-plugin</artifactId> <version>2.3.2</version> 

警告应该解决。

关于这个:

为org.apache.maven.plugins提供'build.plugins.plugin.version':缺lessmaven-compiler-plugin

很多人都提到为什么这个问题正在发生,但没有提出一个解决办法。 我所需要做的就是进入我的项目的POM文件,并添加<version>标签,如上所示。

要发现版本号,一种方法是在完成运行后查看Maven的输出。 在缺less版本号的地方,Maven将显示其默认版本:

 [INFO] --- maven-compiler-plugin:2.3.2:compile (default-compile) @ entities --- 

采取该版本号(如上面的2.3.2 ),并将其添加到您的POM,如图所示。

运行如下:

   $ mvn help:describe -DartifactId = maven-war-plugin -DgroupId = org.apache.maven.plugins

为没有版本的插件。 你得到输出:

名称:Maven WAR插件
说明:从项目生成Web应用程序存档(WAR)文件
  输出及其依赖关系。
组ID:org.apache.maven.plugins
神器Id:maven-war-plugin
版本:2.2
目标前缀:战争

使用输出中显示的版本。

更新如果您想在版本列表中进行select,请使用http://search.maven.org/或http://mvnrepository.com/请注意,您最喜欢的Java IDE必须具有Maven包search对话框 。 只需检查文档。

超级更新我也使用:

 $ mvn dependency:tree $ mvn dependency:list $ mvn dependency:resolve $ mvn dependency:resolve-plugins # <-- THIS 

最近我发现如何获取插件(或库)的最新版本,所以不再需要使用Googlesearch或访问Maven Central

 $ mvn versions:display-dependency-updates $ mvn versions:display-plugin-updates # <-- THIS 

Maven 3对POM结构的限制更多。 例如,你必须设置插件的版本。

用maven 3.1这些警告可能会破坏你的构build。 maven2和maven3之间有更多的变化: https ://cwiki.apache.org/confluence/display/MAVEN/Maven+3.x+Compatibility+Notes

我为我的项目使用父POM,并希望在一个地方指定版本,所以我使用属性来指定版本:

父母pom:

 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> .... <properties> <maven-compiler-plugin-version>2.3.2</maven-compiler-plugin-version> </properties> .... </project> 

项目pom:

 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> .... <build> <finalName>helloworld</finalName> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>${maven-compiler-plugin-version}</version> <configuration> <source>1.6</source> <target>1.6</target> </configuration> </plugin> </plugins> </build> </project> 

另见: https : //www.allthingsdigital.nl/2011/04/10/maven-3-and-the-versions-dilemma/

从以下版本获取最新版本信息:

https://mvnrepository.com/artifact/org.apache.maven.plugins/maven-compiler-plugin

点击最新版本(或者你想使用的版本),你会看到依赖信息:

 <!-- https://mvnrepository.com/artifact/org.apache.maven.plugins/maven-compiler-plugin --> <dependency> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>3.6.1</version> </dependency> 

您可能需要使用版本标记和插件标记的注释。

 <!-- https://mvnrepository.com/artifact/org.apache.maven.plugins/maven-compiler-plugin --> <plugin> <artifactId>maven-compiler-plugin</artifactId> <version>3.6.1</version> <configuration> <source /> <target /> </configuration> </plugin> 

如果你喜欢,你可以修改你的POM版本信息的属性标签中所述的另一个答案。