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版本信息的属性标签中所述的另一个答案。
- 我应该使用Maven的Android应用程序?
- 无法传输工件org.apache.maven.plugins:maven-surefire-plugin:pom:2.7.1 from / to central(http://repo1.maven.org/maven2)
- 从spring-boot获取命令行参数:运行
- Maven的“模块”与“项目”(Eclipse,m2eclipse插件)
- 访问在pom中定义的maven属性
- Maven – 总是下载源代码和javadocs
- 我如何阅读Maven依赖关系树
- 无法创build一个新的Maven hello-world项目
- 你知道mvnrepository.com的maven profile吗?