Java POM中的Maven更新依赖项

Java POM中的Maven更新依赖项,java,maven-2,plugins,command,Java,Maven 2,Plugins,Command,是否有任何预先存在的Maven插件或命令来更新POM中的依赖项? 示例:(如果这是在我的POM中) 公地郎 公地郎 2.3 我是否可以运行命令或插件来更新依赖项: 公地郎 公地郎 2.4 不,没有。而且要高兴没有。这样的工具如何知道如何升级依赖关系 小版本之间可能会出现中断,这将是一场等待发生的灾难 但你可以一直这样做 从Maven存储库获取最新版本的依赖项 与pom.xml中的版本进行比较 重写pom.xml 运行mvn测试 ? 利润 您可以在父pom中使用dependencyMan

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


公地郎
公地郎
2.3
我是否可以运行命令或插件来更新依赖项:


公地郎
公地郎
2.4

不,没有。而且要高兴没有。这样的工具如何知道如何升级依赖关系

小版本之间可能会出现中断,这将是一场等待发生的灾难


但你可以一直这样做

  • 从Maven存储库获取最新版本的依赖项
  • 与pom.xml中的版本进行比较
  • 重写pom.xml
  • 运行
    mvn测试
  • ?
  • 利润
您可以在父pom中使用dependencyManagement:

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

公地郎
公地郎
2.4

这样,您只需在父POM中更改一次版本,尤其是尝试目标;这将生成可升级依赖项的报告,但允许您自己修改POM。还有一个插件显示插件更新命令。

我个人认为,maven中应该有一个额外的参数,允许您添加到pom.xml中

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

<project>
  ...
  <build>
    ...
    <plugins>
      ...
      <plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>versions-maven-plugin</artifactId>
        <version>2.1</version>
      </plugin>
      ...
    </plugins>
    ...
  </build>
  ...
</project>
运行最新版本:

mvn versions:use-latest-versions

区分pom.xml文件、pom.xml文件和pom.xml.versionBackup文件

我想这就是问题的症结所在——我一直在寻找一个Mojo项目来做,谢谢。听到这个总是件好事。如果你决定走开源之路,一定要发布一个链接。这可能曾经是真的,但现在已经不是了(@Robert:建议你改进你的答案?)@Andrew:被接受的答案是正确的,所以我不会复制它。我仍然觉得创建这样一个工具会很有趣。在npm时代,这个问题并不牵强。如果一个插件只需检查更新并通知我,我会非常高兴。同样,检查插件的新版本也很简单。我一直认为这可能是我将构建的Mojo的目标之一。这比以您可以控制或不可以控制的方式进行一些工具更新更可取。您还可以保证所有子项都将使用指定的版本。@MikePone取决于用例-存在有效的版本,就像部署pom需要始终使用您自己工件的最新版本一样,这是一种常见的需要。总的来说,你当然是对的。这符合海报的要求,尽管我认为在大多数情况下使用最新版本更好。但这绝对是要使用的插件。当,现在我已经建立了它!我想正如俗话所说,“除非你想了解更多关于车轮的知识,否则不要重新发明车轮”。)谢谢是的,我错过了使用最新版本。谢谢,Zac。如果您只需要获取公司库的最新版本,您可以通过以下Maven属性实现:-Dincludes=com.mycompany:*适合我!由于某些原因,这个链接总是带我去魔咒主页,我将把这个链接粘贴在这里:谢谢,我已经用刘婷的新链接修复了这个链接。
mvn versions:use-latest-versions