[
https://jira.codehaus.org/browse/MDEP-440?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=352414#comment-352414
]
Karl-Heinz Marbaise commented on MDEP-440:
------------------------------------------
Can you provide an example project which shows the behaviour and may be shows
what you expect?
> When dependency:build-classpath includeArtifactIds is set and
> excludeTransitive is still false, include transitive dependencies of
> specified artifacts
> ------------------------------------------------------------------------------------------------------------------------------------------------------
>
> Key: MDEP-440
> URL: https://jira.codehaus.org/browse/MDEP-440
> Project: Maven Dependency Plugin
> Issue Type: New Feature
> Components: build-classpath
> Reporter: David Boden
> Priority: Trivial
>
> Summary:
> Please consider supporting on the dependency:build-classpath goal:
> * includeArtifacts=component-A
> * excludeTransitive=false
> Result: creating a classpath containing component-A's transitive dependencies.
> Detail:
> My use case is that I have a large assembly .zip that includes multiple
> components but I want to create "personalised" scripts for each component.
> Each script's classpath must include a large subset of the total list of
> dependencies. However, although they share many dependencies, component-A
> shouldn't have component-B's jar file on its classpath. Or if component-A
> uses Apache MQ and component-B doesn't then the Apache MQ jars shouldn't
> appear on component-B's classpath.
> It would be convenient to be able to say "build me the classpath for
> component-A, including all its dependencies" within the context of the wider
> assembly build. Would it be appropriate to do this by setting
> includeArtifactIds=component-A and leaving excludeTransitive as false? At the
> moment, as soon as you add includeArtifactIds, only those specific artifacts
> are included.
> The well-used alternative is to have the scripts generated in the individual
> component's build. The assembly pulls together all the components and
> scripts. However, there's no guarantee that the dependency resolution for the
> individual component decided on the same versions of .jar files as the
> overall assembly build. This can lead to some component's scripts relying on
> version 1.3 of Apache MQ but the asssembly packaging version 1.4. This
> enforcer goal exists to break the build if a potential problem is detected:
> https://maven.apache.org/enforcer/enforcer-rules/dependencyConvergence.html
> I feel that it's more convenient to build the scripts and the assembly in one
> shot and avoid the possibility of dependency resolution problems as far as
> the scripts are concerned. (of course, it opens you up to the possibility of
> runtime problems where a component won't execute properly because it's
> running against a different version of the dependency that it was compiled
> against).
--
This message was sent by Atlassian JIRA
(v6.1.6#6162)