[ https://issues.apache.org/jira/browse/MPLUGIN-385?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17461223#comment-17461223 ]
Romain Manni-Bucau commented on MPLUGIN-385: -------------------------------------------- [~kwin] this is technically only possible if you have a compatibility with past *and* future version to respect "Very true, but both version and scope should IMHO be determined from the minimum Maven version the plugin claims to be compatible with", it is quite unlikely and in terms of testing requires a new setup we don't have so just moving to scope=provided is very risky without implementing the full story which requires to add to our release metadata we don't have yet. Also "True that in case of wrong assumptions of versions it will fail for both scopes "provided" and "compile", but my point is actually that "provided" is better due to the reasons outlined by you (not unnecessarily downloaded)" is not true since the only case which is to discuss is an incompatibility between an exported lib where provided is better but for all other cases compile is the right one (lib present but not exported, lib missing) so compile is the right scope as explained. For extension we enabled to control the classloading strategy (thanks [~gnodet] ) so we can end up enabling it for mojo - and likely in the plugin definition in the pom and not in the plugin _only_ - to solve that properly for all users. Last, the woraround to add in plugin dependencies provided deps is a bad one since it breaks existing plugins when they will upgrade and it will not be natural for users in most cases whereas compile is. Now, there is no issue dropping a dependency resolution for mojo when we know we will provide the dependency and let it be loaded from maven.core which solves your download issue. > Clarify usage of scope "provided" for Maven artifacts with group id > "org.apache.maven" > -------------------------------------------------------------------------------------- > > Key: MPLUGIN-385 > URL: https://issues.apache.org/jira/browse/MPLUGIN-385 > Project: Maven Plugin Tools > Issue Type: Improvement > Components: Plugin Plugin > Affects Versions: 3.6.2 > Reporter: Konrad Windszus > Priority: Major > > Since m-plugin-p 3.6.2 (MPLUGIN-370) all dependencies with group id > {{org.apache.maven}} are supposed to be referenced with scope {{provided}}. > But once turning dependency {{org.apache.maven:maven-archiver:3.5.1}} to > scope provided my ITs based on > {{org.apache.maven.shared:maven-verifier:1.7.2}} are starting to fail with > NCDF errors > {code} > java.lang.NoClassDefFoundError: > Lorg/apache/maven/archiver/MavenArchiveConfiguration; > {code} > Is that a bug in the classloader with maven-verifier? What if I want to use a > newer version than shipped with Maven like "maven-archiver 3.5.1"? > What about group ids starting with "org.apache.maven" like > "org.apache.maven.shared"? > You can reproduce with > https://github.com/apache/jackrabbit-filevault-package-maven-plugin. -- This message was sent by Atlassian Jira (v8.20.1#820001)