Maven 2.x Rar Plugin

Avoid to bundle rar dependencies (w/o scope=provided) inside the rar archive

Details

  • Type: New Feature New Feature
  • Status: Open Open
  • Priority: Major Major
  • Resolution: Unresolved
  • Affects Version/s: 2.1
  • Fix Version/s: 2.3
  • Component/s: None
  • Labels:
    None
  • Environment:
    Maven 2.0.4
  • Number of attachments :
    0

Description

If I use "provided" the dependencies will never be included, my problem is
1. projects:
my-jar
rar1: dependency to my-jar
rar2: dependency to my-jar
ejb1: dependency to my-jar
ear: dependency to rar1, rar2. ejb1
2. inside the ear:
ejb1.jar
rar1.rar
rar2.rar
lib/my-jar.jar
3. This works fine for packaging=ejb - the my-jar.jar gets copied to the lib dir during build of
the ear. But the same jar gets also packaged in the rar1 and in the rar2 archive. So I have it
three times instead only having the entries in MANFIFEST.MF/Class-Path and the jar only
once in the lib subdir.
The Manifest entries are not the problem, to get the jar not packaged in the rars is my
problem.

4. my proposal:
add plugin configuration parameter <includeDependencies>false</includeDependencies>

in RarMojo.java additional parameter and check:

/**

  • Specify if the specified dependencies of this project should be
  • included in the rar file ; default is true.
    *
  • @parameter
    */
    private Boolean includeDependencies = Boolean.TRUE;

....
// Copy dependencies
try
{
if (includeDependencies.booleanValue()) { // additional check

carsten

Issue Links

Activity

Hide
Stephane Nicoll added a comment -

OK, not an easy one so I'll do it for the next release. I don't lile your binary solution, it certainly fit your need but it's not a general solution.

Show
Stephane Nicoll added a comment - OK, not an easy one so I'll do it for the next release. I don't lile your binary solution, it certainly fit your need but it's not a general solution.
Hide
Dave Meibusch added a comment -

Perhaps a solution mirroring the ear plugin functionality: http://maven.apache.org/plugins/maven-ear-plugin/examples/excluding-a-module.html

Show
Dave Meibusch added a comment - Perhaps a solution mirroring the ear plugin functionality: http://maven.apache.org/plugins/maven-ear-plugin/examples/excluding-a-module.html
Hide
Benjamin added a comment -

I agree with Carsten, this change is of high priority and i believe a simple flag is the best way to accomplish it. there are almost no scenarios where one would want to include some JAR dependencies inside the RAR and others at the EAR level. even if multiple versions of the same library are needed then simple renaming of different jar dependencies and using the RAR manifest file's classpath entry would allow one to accomplish this.

Show
Benjamin added a comment - I agree with Carsten, this change is of high priority and i believe a simple flag is the best way to accomplish it. there are almost no scenarios where one would want to include some JAR dependencies inside the RAR and others at the EAR level. even if multiple versions of the same library are needed then simple renaming of different jar dependencies and using the RAR manifest file's classpath entry would allow one to accomplish this.

People

Vote (5)
Watch (5)

Dates

  • Created:
    Updated: