[ 
https://issues.apache.org/jira/browse/MPLUGIN-302?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15348018#comment-15348018
 ] 

Christofer Dutz commented on MPLUGIN-302:
-----------------------------------------

Would be a great opportunity for me to contribute. Especially as it would help 
implementing Maven support for other tools a lot easier ... but only if there 
was an option to also plugin to the transitive dependency resolution. Do you 
have an Idea how this would have to be implemented?

Chris

> 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)

Reply via email to