Maven update dependencies in POM

前端 未结 5 1495
深忆病人
深忆病人 2020-12-07 15:34

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



        
相关标签:
5条回答
  • 2020-12-07 15:58

    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

    0 讨论(0)
  • 2020-12-07 15:58

    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!
    0 讨论(0)
  • 2020-12-07 15:59

    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.

    0 讨论(0)
  • 2020-12-07 16:07

    Try the maven-versions-plugin, in particular, the versions:use-latest-versions goal.

    0 讨论(0)
  • 2020-12-07 16:20

    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

    0 讨论(0)
提交回复
热议问题