31

我正在使用 maven-ear-plugin 版本 2.3.1 - 我知道有一个新版本可用:http ://maven.apache.org/plugins/maven-ear-plugin/

我不知道如何升级到最新版本?

4

4 回答 4

50

尽管这已经得到了“认可的答案”,但事实证明,有这个AWESOME 版本插件可以处理永无止境的版本维护问题。

对于那些懒惰的人,这里有一些目标:

  • versions:display-dependency-updates扫描项目的依赖关系并生成具有更新版本可用的依赖关系的报告。
  • versions:display-plugin-updates扫描项目的插件并生成具有更新版本可用插件的报告。
  • 版本:display-property-updates扫描项目并生成用于控制工件版本的那些属性的报告,以及哪些属性有更新的版本可用。
  • 版本:更新父更新项目的父部分,以便它引用最新的可用版本。例如,如果您使用公司根 POM,如果您需要确保使用的是最新版本的公司根 POM,则此目标会很有帮助。
  • 版本:更新属性更新项目中定义的属性,以便它们对应于特定依赖项的最新可用版本。如果必须将一组依赖项都锁定到一个版本,这将很有用。
  • 版本:更新子模块更新项目的子模块的父部分,以便版本与当前项目的版本匹配。例如,如果您有一个聚合器 pom,它也是它聚合的项目的父级,并且子级和父级版本不同步,则此 mojo 可以帮助修复子模块的版本。(请注意,如果您的项目严重损坏以至于由于版本不匹配而无法构建,您可能需要使用 -N 选项调用 Maven 以运行此目标)。
  • 版本:lock-snapshots在 pom 中搜索所有 -SNAPSHOT 版本并将它们替换为该 -SNAPSHOT 的当前时间戳版本,例如 -20090327.172306-4
  • 版本:解锁快照在 pom 中搜索所有时间戳锁定的快照版本,并用 -SNAPSHOT 替换它们。
  • versions:set可用于从命令行设置项目版本。
  • versions:use-releases在 pom 中搜索所有已发布的 -SNAPSHOT 版本,并将其替换为相应的发布版本。
  • versions:use-next-releases在 pom 中搜索所有较新版本的非 SNAPSHOT 版本,并用下一个版本替换它们。
  • versions:use-latest-releases在 pom 中搜索所有较新版本的非 SNAPSHOT 版本,并将它们替换为最新版本。
  • 版本:use-next-snapshots在 pom 中搜索所有非 SNAPSHOT 版本,这些版本是较新的 -SNAPSHOT 版本,并用下一个 -SNAPSHOT 版本替换它们。
  • 版本:use-latest-snapshots在 pom 中搜索所有非 SNAPSHOT 版本,这些版本是较新的 -SNAPSHOT 版本,并用最新的 -SNAPSHOT 版本替换它们。
  • versions:use-next-versions在 pom 中搜索所有较新版本的版本,并将它们替换为下一个版本。
  • 版本:使用最新版本在 pom 中搜索所有较新版本的版本,并用最新版本替换它们。
于 2010-12-31T04:22:37.323 回答
17

默认插件版本继承自 Super POM,您可以使用mvn help:effective-pom.

如果您想覆盖那里提供的版本,请将其添加到您的 POM:

<project>
  <build>
    <plugins>
      <plugin>
        <artifactId>maven-ear-plugin</artifactId>
        <version>2.3.1</version>
      </plugin>
    </plugins>
  </build>
</project>

将版本替换为您需要的版本。

于 2009-04-24T16:29:25.410 回答
9

如何选择插件的版本,以及关于 superpom 中插件版本的讨论在这里详细介绍。

实际上当前选择的答案并不完全正确。它应该是

<project>
  <build>
   <pluginManagement>
    <plugins>
      <plugin>
        <artifactId>maven-ear-plugin</artifactId>
        <version>2.3.1</version>
      </plugin>
    </plugins>
   </pluginManagement>
  </build>
</project>

我在这里解释了原因:

“常规插件部分还允许定义版本和默认配置,这就是混乱所在。在这里定义插件版本和默认配置在技术上是有效的,但我发现遵循这个更容易理解 pom指导方针:

如果插件块没有定义执行(因此绑定 maven 以在生命周期中做某事),则将该块放入 pluginManagment"

于 2009-04-26T01:10:32.090 回答
3

一些 maven 插件仅限于 maven 版本。例如,这里的项目通常使用 Maven 2.0.4,它被限制为使用 war 插件 2.0.2 - 这适用于覆盖。然而,Maven 2.0.9 使用的 2.1-alpha 没有——所以我们不得不手动降级。除非另有说明,否则 Maven 将尝试根据其版本使用最新版本的插件。

于 2009-04-24T18:29:42.580 回答