apache / apache/maven-shade-plugin

[MSHADE-256] Manifest transformer should reuse archiver plugin

Open
#283 0 comments 0 reactions 0 assignees View on GitHub
enhancement priority:major
Dominant language
Java
Stars
188
Forks
103
Avg merge
16h 39m
Merged PRs (30d)
4

Description

**[Brian Oxley](https://issues.apache.org/jira/secure/ViewProfile.jspa?name=binkley)** opened **[MSHADE-256](https://issues.apache.org/jira/browse/MSHADE-256?redirect=false)** and commented

I noted that for the manifest transformer custom handles manifest entries, rather than reuses the archiver plugin (as, for example, the jar plugin does). I confirmed this in the transformer resource sources.

For example, the instructions for adding a main class entry rely on a custom manifest entry ("Main-Class") rather than reusing the "mainClass" tag from archiver:

https://maven.apache.org/plugins/maven-shade-plugin/examples/executable-jar.html

(Verified through trial and error.)

Similarly, I could not use the "index" tag to index the shaded jar. Indexing seems particularly apt for the large number of classes that appear in a shaded jar. And likewise for other archiver plugin features.

Delegating to the archiver plugin would provide a more uniform way of configuring my pom for manifest handling, and keep the shade plugin up to date w.r.t. archiver features and fixes.

---

**Affects:** 3.0.0

1 votes, 1 watchers

Contributor guide

No contributing guide indexed for this repository

Research direction

Start with the transformer resource sources mentioned in the issue and compare their manifest handling with the archiver plugin configuration. Done means manifest settings such as the main class and index can be configured through the archiver plugin rather than custom transformer entries, while preserving shaded-jar behavior.

Written by the indexing model from the issue text.

Assessment

Tech stack
java
Domain
build-system
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.