apache / apache/maven-plugin-tools

[MPLUGIN-302] Dependencies Annotation

Open
#609 13 comments 0 reactions 0 assignees View on GitHub
enhancement priority:major
Dominant language
Java
Stars
64
Forks
71
Avg merge
12h 24m
Merged PRs (30d)
32

Description

**[Robert Scholte](https://issues.apache.org/jira/secure/ViewProfile.jspa?name=rfscholte)** opened **[MPLUGIN-302](https://issues.apache.org/jira/browse/MPLUGIN-302?redirect=false)** and commented

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.

```xml

org.apache.maven.plugins
maven-javadoc-plugin
2.10.3

package.to.YourTagletClass

group-Taglet
artifact-Taglet
version-Taglet



```

This will become

```xml

org.apache.maven.plugins
maven-javadoc-plugin
2.10.3

package.to.YourTagletClass



group-Taglet
artifact-Taglet
version-Taglet
taglet



```

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:

```xml


GROUPID
ARTIFACTID-7
release:7


GROUPID
ARTIFACTID-8
release:8

```

In the maven-jar-plugin one would have something like:

```
@Dependecies( label="release" )
Map releaseArtifacts;

// somewhere in the code
foreach( Map.Entry releaseEntry : releaseArtifacts.entrySet() )
{
// copy content of release.value() to META-INF/versions/release.key()
}
```

---

**Attachments:**
- [dependencies-annotation.patch](https://issues.apache.org/jira/secure/attachment/12806879/dependencies-annotation.patch) (_4.23 kB_)

1 votes, 3 watchers

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.