[
https://issues.apache.org/jira/browse/MPLUGIN-302?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15355626#comment-15355626
]
Robert Scholte commented on MPLUGIN-302:
----------------------------------------
Yes, that's correct. I hope you only have to specify the scopes of the direct
dependencies, and those dependencies should 'know' which scopes of the
transitive dependencies should be included. This is a very good case to keep in
mind.
> Dependencies Annotation
> -----------------------
>
> Key: MPLUGIN-302
> URL: https://issues.apache.org/jira/browse/MPLUGIN-302
> Project: Maven Plugin Tools
> Issue Type: New Feature
> Components: API
> Reporter: Robert Scholte
> Attachments: dependencies-annotation.patch
>
>
> The goal of this Annotation is to remove all dependencies from the plugin
> configuration and to have custom scopes so they become part of the dependency
> resolution when Maven is creating a buildplan.
> {code:xml}
> <plugin>
> <groupId>org.apache.maven.plugins</groupId>
> <artifactId>maven-javadoc-plugin</artifactId>
> <version>2.10.3</version>
> <configuration>
> <taglet>package.to.YourTagletClass</taglet>
> <tagletArtifact>
> <groupId>group-Taglet</groupId>
> <artifactId>artifact-Taglet</artifactId>
> <version>version-Taglet</version>
> </tagletArtifact>
> </configuration>
> </plugin>
> {code}
> This will become
> {code:xml}
> <plugin>
> <groupId>org.apache.maven.plugins</groupId>
> <artifactId>maven-javadoc-plugin</artifactId>
> <version>2.10.3</version>
> <configuration>
> <taglet>package.to.YourTagletClass</taglet>
> </configuration>
> <dependencies>
> <dependeny>
> <groupId>group-Taglet</groupId>
> <artifactId>artifact-Taglet</artifactId>
> <version>version-Taglet</version>
> <scope>taglet</taglet>
> </dependency>
> </dependencies>
> </plugin>
> {code}
> Going further: there can be project dependencies which are not part of the
> classpath. One concrete example is the multirelease jar, where the newer
> implementation classes can be added to base jar. Current solution is to have
> a separate (distribution) Maven module which assembles the final jar, but
> with the solution above it is possible to embed them already when creating
> the base jar.
> This project would have the following dependencies:
> {code:xml}
> <dependencies>
> <dependency>
> <groupId>GROUPID</groupId>
> <artifactId>ARTIFACTID-7</artifactId>
> <scope>release:7</scope>
> </dependency>
> <dependency>
> <groupId>GROUPID</groupId>
> <artifactId>ARTIFACTID-8</artifactId>
> <scope>release:8</scope>
> </dependency>
> </dependencies>
> {code}
> In the maven-jar-plugin one would have something like:
> {code}
> @Dependecies( label="release" )
> Map<String,Artifact> releaseArtifacts;
> // somewhere in the code
> foreach( Map.Entry releaseEntry : releaseArtifacts.entrySet() )
> {
> // copy content of release.value() to META-INF/versions/release.key()
> }
> {code}
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)