[ https://issues.apache.org/jira/browse/MNG-6025?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Michael Osipov closed MNG-6025. ------------------------------- Resolution: Fixed Fixed with [7277a8464ba453aeacb82b22ffd966c9fb17c620|https://git-wip-us.apache.org/repos/asf?p=maven.git;a=commit;h=7277a8464ba453aeacb82b22ffd966c9fb17c620]. > Add a ProjectArtifactsCache similar to PluginArtifactsCache > ----------------------------------------------------------- > > Key: MNG-6025 > URL: https://issues.apache.org/jira/browse/MNG-6025 > Project: Maven > Issue Type: Improvement > Components: core > Affects Versions: 3.3.9 > Reporter: Anton Tanasenko > Assignee: Jason van Zyl > Priority: Minor > Fix For: 3.4.0 > > > Every mojo execution, if it specifies dependency resolution other than > 'none', will cause a resolution to be performed. > There is a guard in MojoExecutor's DependencyContext which guards against > performing this resolution multiple times by looking at the changes to > dependencyArtifacts list. > However, during a build in an incremental/interactive environment, like > eclipse m2e or maven console, those mojos might be executed at an arbitrary > time and will not benefit from that DependencyContext check. > I propose having a ProjectArtifactsCache (very similar to > PluginArtifactsCache) that will cache artifact set as returned by > LifecycleDependencyResolver#getDependencies(). > While it does not improve cli builds, incremental/interactive builds will > receive a huge performance boost between pom changes. > I've been able to get build of a project with a lot of dependencies (jenkins > plugin) and a number of (fully incremental) mojo executions from 7 seconds to > around 1.5 on a single java file change in eclipse m2e after introducing this > cache. > I will provide a patch shortly. -- This message was sent by Atlassian JIRA (v6.3.4#6332)