在網上的各種地方,我已經看到它討論過,爲了使Maven構建可重現,明確指定所有使用的插件的版本號非常重要,以便更新的插件不會破壞構建。推薦的方法似乎是使用執行插件。以下是我在網上找到的複製和粘貼設置。核心maven插件是否與maven本身在同一發佈週期?
<execution>
<id>enforce-plugin-versions</id>
<goals>
<goal>enforce</goal>
</goals>
<configuration>
<rules>
<requirePluginVersions>
<message>Best Practice is to always define plugin versions!</message>
<banLatest>true</banLatest>
<banRelease>true</banRelease>
<banSnapshots>true</banSnapshots>
<phases>clean,deploy,site</phases>
<additionalPlugins>
<additionalPlugin>org.apache.maven.plugins:maven-eclipse-plugin</additionalPlugin>
<additionalPlugin>org.apache.maven.plugins:maven-reactor-plugin</additionalPlugin>
</additionalPlugins>
<unCheckedPluginList>org.apache.maven.plugins:maven-enforcer-plugin,org.apache.maven.plugins:maven-idea-plugin</unCheckedPluginList>
</requirePluginVersions>
</rules>
</configuration>
</execution>
當我運行pom時,從執行插件中得到以下錯誤。
[INFO] --- maven-enforcer-plugin:1.1.1:enforce (enforce-plugin-versions) @ seedling ---
[WARNING] Rule 0: org.apache.maven.plugins.enforcer.RequirePluginVersions failed with message:
Some plugins are missing valid versions:(LATEST RELEASE SNAPSHOT are not allowed)
org.apache.maven.plugins:maven-clean-plugin. The version currently in use is 2.4.1
org.apache.maven.plugins:maven-deploy-plugin. The version currently in use is 2.7
org.apache.maven.plugins:maven-install-plugin. The version currently in use is 2.3.1
org.apache.maven.plugins:maven-site-plugin. The version currently in use is 3.0
org.apache.maven.plugins:maven-reactor-plugin. The version currently in use is 1.0
org.apache.maven.plugins:maven-eclipse-plugin. The version currently in use is 2.9
Best Practice is to always define plugin versions!
在我看來,一些插件是如Maven的清理插件,Maven的安裝,插件,Maven的反應器插件被行家的核心中央部分,我應該有這些版本「核心」插件綁定到我正在使用的maven版本。
我的問題:
- 在同一個發行週期的行家本身插件的版本?
- 是否有一組核心maven插件組成maven版本?如果是的話,如何獲得Maven版本的插件列表?
- 當我看到像3.0.4這樣的maven版本是包含一些核心插件的版本,還是會一直獲得maven 3.0.4發佈後發佈的最新插件,比如reactor?
- 有沒有一種方法可以對在3.0.4發佈時發佈的Maven使用插件進行說明?
- 不同的插件版本之間的兼容性是如何表示的,是否有一些通用的插件,比如所有小型的2.x都相互兼容,但3.x與2.x不兼容?
- 指定插件版本號是否真的是最好的有害生物實踐或只是矯枉過正?