Maven update dependencies in POM

2019-01-16 10:12发布

Are there any preexisting Maven plugins or commands to update the dependencies in the POM? Example: (if this was in my POM)

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

Is there a command or plugin I can run to get it to update the dependency to:

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

5条回答
The star\"
2楼-- · 2019-01-16 10:22

No there is isn't. And be happy there is not. How would such a tool know how to upgrade your dependencies?

With breakages possibly happening between minor versions, it would be a disaster waiting to happen.


But you can always write your own Mojo for that.

  • get latest version of dependency from Maven repository
  • compare with version from pom.xml
  • rewrite pom.xml
  • run mvn test
  • ?
  • Profit!
查看更多
手持菜刀,她持情操
3楼-- · 2019-01-16 10:33

you can use dependencyManagement in your parent pom:

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

this way, you need to change the version only once in the parent POM

查看更多
Fickle 薄情
4楼-- · 2019-01-16 10:38

Personally, I think there should be an additional parameter in maven that would allow you to add to the pom.xml.

See post at http://maven.40175.n5.nabble.com/Is-there-any-maven-plugin-to-add-dependency-to-existing-pom-xml-td2839092.html#a5772853

Here, you can add the following to your pom.xml file:

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

...

Then backup your pom.xml file via version set command:

mvn versions:set -DnewVersion=9.9.9

Run latest versions:

mvn versions:use-latest-versions

and diff the pom.xml files, pom.xml and pom.xml.versionsBackup

查看更多
可以哭但决不认输i
5楼-- · 2019-01-16 10:40

I prefer using mvn versions:display-dependency-updates; this generates a report of which dependencies can be upgraded, but lets you modify the POMs yourself. There's also a display-plugin-updates command for plugins.

查看更多
虎瘦雄心在
6楼-- · 2019-01-16 10:43
登录 后发表回答