maven-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Christofer Dutz (JIRA)" <j...@apache.org>
Subject [jira] [Comment Edited] (MPLUGIN-302) Dependencies Annotation
Date Fri, 08 Jul 2016 08:22:11 GMT

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

Christofer Dutz edited comment on MPLUGIN-302 at 7/8/16 8:21 AM:
-----------------------------------------------------------------

Ok so now I got Maven checked out ... all the other stuff too and all is building nicely.
So I'm setup to get started on this. I added your patch. So you say the Plugin Descriptor
needs to be adjusted. But why? I thought that contains the information about parameters the
user is supposed to use to configure the mojo. It doesn't seem to handle the injection of
stuff like components or dependencies. Could you elaborate a little on what you had in mind
here?


was (Author: cdutz):
Ok so now I got machen checked out ... all the other stuff too and all is building nicely.
So I'm setup to get started on this. I added your patch. So you say the Plugin Descriptor
needs to be adjusted. But why? I thought that contains the information about parameters the
user is supposed to use to configure the mojo. It doesn't seem to handle the injection of
stuff like components or dependencies. Could you elaborate a little on what you had in mind
here?

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

Mime
View raw message