[ https://issues.apache.org/jira/browse/MRESOLVER-229?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17453882#comment-17453882 ]
Michael Osipov commented on MRESOLVER-229: ------------------------------------------ Important, currently there is works for a build cache within Maven. Have you read about it? Does this overlap with your work? > Improve the download speed by downloading poms & jars in parallel as a warm-up > ------------------------------------------------------------------------------ > > Key: MRESOLVER-229 > URL: https://issues.apache.org/jira/browse/MRESOLVER-229 > Project: Maven Resolver > Issue Type: Improvement > Components: Resolver > Affects Versions: 1.7.1 > Reporter: wei cai > Priority: Major > > 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. > * maven-resolver change by a skip & reconcile approach > https://issues.apache.org/jira/browse/MRESOLVER-228?filter=allopenissues > * download poms and jars in parallel ahead as a warm-up > 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. > -- This message was sent by Atlassian Jira (v8.20.1#820001)