Uploaded image for project: 'Maven Resolver'
  1. Maven Resolver
  2. MRESOLVER-229

Improve the download speed by downloading poms & jars in parallel as a warm-up

    XMLWordPrintableJSON

Details

    • Improvement
    • Status: Open
    • Major
    • Resolution: Unresolved
    • 1.7.1
    • None
    • Resolver
    • None

    Description

      We are tuning maven builds in our company, so far, we've made 2 big changes that we think they can benefit the opensource community.

      It is not a new issue that downloading dependencies in maven is slow. Similar issues reported in:

      https://issues.apache.org/jira/browse/MRESOLVER-7

      Our solution is a bit different, basically we:

      • Collect artifacts required for the project by listening to the maven dependency resolve event and store as a artifacts.json (GAV list & its repository ids) somewhere, in our case, we are storing the artifacts.json in a backend service.
      • Before maven build kick starts, we called the maven-resolver api (DefaultDependencyCollector) to resolve all artifacts in artifacts.json in parallel.
      • After warm-up completed, let maven still build the project as normal. This means even something missed in artifacts.json, maven could still find the missing part and resolve them.

      This solution does not help for the very 1st build as no artifacts.json is built yet, however for any future builds, download can happen in parallel and thus it would be very quick.

      This solution helps speed up the maven builds in below cases:

      • All CI builds
      • New hires or new machines as there is no local maven repo cache
      • Snapshot updates
      • When a new dependency added, especially for a dependency having lots of transitive dependencies
      • Version upgrade such as Spring boot version upgrade

      michael-o 

      As a opensource solution, may be we can store the artifacts.json to .mvn in the git repository root, in this way, the artifacts list cache goes with the code.

      Please share your comments with this solution.

       

      Attachments

        Activity

          People

            Unassigned Unassigned
            wecai wei cai
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

            Dates

              Created:
              Updated: