[
https://issues.apache.org/jira/browse/SLING-11369?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Konrad Windszus updated SLING-11369:
------------------------------------
Summary: Provide Maven Enforcer rule which checks that transitive provided
dependencies are contained in the runtime Maven classpath (was: Provide Maven
Enforcer which checks that transitive provided dependencies are contained in
the runtime Maven classpath)
> Provide Maven Enforcer rule which checks that transitive provided
> dependencies are contained in the runtime Maven classpath
> ---------------------------------------------------------------------------------------------------------------------------
>
> Key: SLING-11369
> URL: https://issues.apache.org/jira/browse/SLING-11369
> Project: Sling
> Issue Type: New Feature
> Components: Tooling
> Reporter: Konrad Windszus
> Assignee: Konrad Windszus
> Priority: Major
>
> All dependencies with provided scope are not transitively inherited. While
> this isn't a problem usually during compile time it is a problem for Maven
> plugins at run time, as they use the Maven dependency classpath also at run
> time
> (https://maven.apache.org/guides/mini/guide-maven-classloading.html#3-plugin-classloaders).
> At run time they fail if the transitive provided dependency has not been
> declared explicitly.
> As manually specifying all transitive (but hidden) provided dependencies is a
> very error-prone process an enforcer rule for that would be highly
> beneficial. Especially as the transitive dependencies have to be rechecked
> once you upgrade to a newer version.
> Example:
> My Maven Plugin "A" -> 3rd Party Library "B" -> Provided Dependency "C"
> As "B" uses "C" at run time it needs to be declared as dependency of "A" as
> well otherwise you might see java.lang.ClassNotFoundException when executing
> Maven plugin "A".
> This was originally proposed in MENFORCER-385.
> Compare with the discussion at
> https://lists.apache.org/thread/ttncrwmsnk29qy6n3on6ymfbq9s7dbnm
--
This message was sent by Atlassian Jira
(v8.20.7#820007)