【问题标题】:Is it necessary to specify version of a maven plugin in pom?是否有必要在 pom 中指定 maven 插件的版本?
【发布时间】:2014-03-24 21:46:25
【问题描述】:

我正在使用 NetBeans 进行开发,它具有内置菜单功能,允许我们在 pom 中添加 maven-checkstyle-plugin 以进行代码格式化。但是,当您单击该菜单时,它会自动在 pom 中添加以下代码,但没有 <version> 信息。现在我的 IDE 一直在抱怨,在页边空白处有一条小提示消息,说缺少“版本”标签。我的问题是: 是否所有添加的插件都必须在 pom 中有 <version> 标签?

pom.xml

 <reporting>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-checkstyle-plugin</artifactId>
                <configuration>
                    <configLocation>config/sun_checks.xml</configLocation>
                </configuration>
            </plugin>
        </plugins>
    </reporting>

【问题讨论】:

  • 下面在@dimasiu 回答中进行了解释。总结:如果您希望构建可重现,则需要指定插件版本。例如,如果将不兼容的插件更改推送到 Maven Central,您不希望构建神秘地停止工作。

标签: java maven netbeans


【解决方案1】:

不是必须的,但强烈推荐使用版本标签。

当在 POM 中没有给出明确版本的情况下调用插件时 或者在命令行上,Maven 2.x 用来选择最新版本 在最新版本可以是发行版或 快照。为了稳定,Maven 3.x 更喜欢最新的 发布版本优于最新的快照版本。

考虑到自动生成的不可复制构建的威胁 插件版本解析,此功能计划删除为 就 POM 中的插件声明而言。 Maven的用户 3.x 会发现它在检测到缺少插件版本时输出警告,以鼓励将插件版本添加到 POM 或 其父 POM 之一。 Enforcer 规则 requirePluginVersions 可以是 还用于检查 POM 中缺少的插件版本。

https://cwiki.apache.org/confluence/display/MAVEN/Maven+3.x+Compatibility+Notes

【讨论】:

    猜你喜欢
    • 2012-05-17
    • 1970-01-01
    • 2013-06-18
    • 1970-01-01
    • 1970-01-01
    • 2020-08-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多