73

是否有任何预先存在的 Maven 插件或命令来更新 POM 中的依赖项?示例:(如果这是在我的 POM 中)

<dependency>
    <groupId>commons-lang</groupId>
    <artifactId>commons-lang</artifactId>
    <version>2.3</version>
</dependency> 

是否有我可以运行的命令或插件来将依赖项更新为:

<dependency>
    <groupId>commons-lang</groupId>
    <artifactId>commons-lang</artifactId>
    <version>2.4</version>
</dependency> 
4

6 回答 6

73

尝试maven-versions-plugin,特别是versions:use-latest-versions目标。

于 2009-06-10T10:31:28.673 回答
33

我更喜欢使用mvn 版本:display-dependency-updates;这会生成一份报告,说明哪些依赖项可以升级,但允许您自己修改 POM。还有一个用于插件的display-plugin-updates命令。

于 2011-09-12T17:49:09.300 回答
6

您可以在父 pom 中使用 dependencyManagement:

<dependencyManagement>
      <dependencies>
          <dependency>
              <groupId>commons-lang</groupId>
              <artifactId>commons-lang</artifactId>
              <version>2.4</version>
          </dependency>
      </dependencies>
</dependencyManagement>

这样,您只需在父 POM 中更改一次版本

于 2009-06-10T08:57:01.330 回答
3

就个人而言,我认为 maven 中应该有一个额外的参数可以让你添加到 pom.xml 中。

请参阅http://maven.40175.n5.nabble.com/Is-there-any-maven-plugin-to-add-dependency-to-existing-pom-xml-td2839092.html#a5772853上的帖子

在这里,您可以将以下内容添加到您的 pom.xml 文件中:

<project>
  ...
  <build>
    ...
    <plugins>
      ...
      <plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>versions-maven-plugin</artifactId>
        <version>2.1</version>
      </plugin>
      ...
    </plugins>
    ...
  </build>
  ...
</project>

...

然后通过版本设置命令备份您的 pom.xml 文件:

mvn versions:set -DnewVersion=9.9.9

运行最新版本:

mvn versions:use-latest-versions

并区分 pom.xml 文件 pom.xml 和 pom.xml.versionsBackup

于 2013-10-11T18:14:13.163 回答
0

不,没有。并且很高兴没有。这样的工具如何知道如何升级您的依赖项?

由于次要版本之间可能发生损坏,这将是一场等待发生的灾难。


但是你总是可以为此编写自己的 Mojo

  • 从 Maven 存储库获取最新版本的依赖项
  • 与 pom.xml 中的版本进行比较
  • 重写 pom.xml
  • mvn test
  • ?
  • 利润!
于 2009-06-10T00:02:05.733 回答
0

我遇到了同样的问题,最后通过编写 bash 脚本解决了。

GitHub 存储库 - 更新 POM Shell

这是一个 shell 脚本,允许您直接从命令行更新对不同模块的依赖关系。

当您需要一次更新对不同模块的一个或多个依赖项时,它特别有用。

于 2022-02-11T13:52:11.263 回答