gnodet commented on PR #618:
URL: https://github.com/apache/maven-jar-plugin/pull/618#issuecomment-6248847638

   @slawekjaranowski — fair question. The key issue with `maven-archiver` 4.x 
(even if beta-6 passes vote) is that it still carries `plexus-archiver` as a 
hard dependency — and `plexus-archiver` is a heavyweight component that handles 
`zip`/`tar`/`jar` archive *creation*, not just manifest generation.
   
   This PR only needs manifest generation. Depending on `maven-archiver` just 
for that would pull in `plexus-archiver`, `plexus-interpolation`, and related 
plexus infrastructure that is otherwise entirely absent from this Maven 4 API 
plugin.
   
   The design principle for Maven 4 API plugins is to avoid plexus dependencies 
where possible. That is what this PR achieves by inlining only the 
manifest-generation logic.
   
   If `maven-archiver` 4.x is refactored to split manifest generation from 
archive creation (i.e., separate the `ManifestBuilder`-equivalent from the 
`MavenArchiver.createArchive()`-equivalent), then using it as a dependency 
would make sense. That would essentially be Option B / Option C from the 
earlier discussion. @hboutemy also suggested creating a maven-archiver 4.x 
branch without plexus-archiver — that would be the right shared path.
   
   For now, this PR takes the minimal approach: inline just the manifest code, 
make it package-private, and leave the shared-library decision to a follow-up 
once the design is proven. The inline code can serve as the reference 
implementation when that shared component is eventually extracted.


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to