[
https://issues.apache.org/jira/browse/MNG-7097?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Tamás Cservenák updated MNG-7097:
---------------------------------
Description:
Current Maven behavior for resolving plugin dependencies is to download full
transitive graph of plugin dependency, but for executing plugin it filters out
core artifacts from graph (excludes them).
This results in unnecessary downloads of core artifacts, multiplied by multiple
versions used by different plugins, and local repository end up having
artifacts that may even surprise users.
Most notable examples: maven-core (user: "Why did Maven download maven-core-X
when I use maven-Y?"), plexus-container-default (user: "Why does Maven download
10+ versions of this legacy artifact (adv user: when sisu-inject-plexus shim is
used instead)?"), multiple versions of plexus-utils etc...
We need to investigate what exactly happens with downloaded, but unused core
artifacts (if they are completely excluded based on GAV, we are safest), and
simply exclude them even from resolution/collection, as they are really not
needed.
This will not "improve build speed", but does lessen "bandwidth", as
experiments shows that cutting plugin dependencies for core artifacts for Maven
project itself makes about 1k less remote requests (artifact and artifact
checksum downloads).
was:
Current Maven behavior for resolving plugin dependencies is to download full
transitive graph of plugin dependency, but for executing plugin it filters out
core artifacts from graph (excludes them).
This results in unnecessary downloads of core artifacts, multiplied by multiple
versions used by different plugins, and local repository end up having
artifacts that may even surprise users.
Most notable examples: maven-core (user: "Why did Maven download maven-core-X
when I use maven-Y?"), plexus-container-default (user: "Why does Maven download
10+ legacy artifact, when sisu-inject-plexus shim is used instead?"),
plexus-utils etc...
We meed to better investigate what exactly happens with downloaded but unused
core artifacts (if they are completely excluded based on GAV, we are safest),
and simply exclude them even from resolution/collection, as they are really not
needed.
This will not "improve build speed", but does lessen "bandwidth", as
experiments shows that cutting plugin dependencies for core artifacts for Maven
project itself makes about 1k less remote requests (artifact and artifact
checksum downloads).
> Plugin Dependency Resolution
> ----------------------------
>
> Key: MNG-7097
> URL: https://issues.apache.org/jira/browse/MNG-7097
> Project: Maven
> Issue Type: Task
> Components: Performance, Plugins and Lifecycle
> Reporter: Tamás Cservenák
> Priority: Major
>
> Current Maven behavior for resolving plugin dependencies is to download full
> transitive graph of plugin dependency, but for executing plugin it filters
> out core artifacts from graph (excludes them).
> This results in unnecessary downloads of core artifacts, multiplied by
> multiple versions used by different plugins, and local repository end up
> having artifacts that may even surprise users.
> Most notable examples: maven-core (user: "Why did Maven download maven-core-X
> when I use maven-Y?"), plexus-container-default (user: "Why does Maven
> download 10+ versions of this legacy artifact (adv user: when
> sisu-inject-plexus shim is used instead)?"), multiple versions of
> plexus-utils etc...
> We need to investigate what exactly happens with downloaded, but unused core
> artifacts (if they are completely excluded based on GAV, we are safest), and
> simply exclude them even from resolution/collection, as they are really not
> needed.
> This will not "improve build speed", but does lessen "bandwidth", as
> experiments shows that cutting plugin dependencies for core artifacts for
> Maven project itself makes about 1k less remote requests (artifact and
> artifact checksum downloads).
--
This message was sent by Atlassian Jira
(v8.3.4#803005)