[ http://jira.codehaus.org/browse/MWAR-9?page=comments#action_54991 ] 

mike perham commented on MWAR-9:
--------------------------------

This is more of a documentation issue than anything.  The EAR and WAR plugins 
already support the features required to move ALL war dependencies to the EAR 
with some caveats.  This is the email I sent to the user list today:

We throw everything in <EAR_ROOT>/lib and exclude them from WEB-INF/lib.  The 
WAR's MANIFEST.MF is autogenerated like so:

                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-war-plugin</artifactId>
                    <configuration>
                        <warSourceExcludes>WEB-INF/lib/*.jar</warSourceExcludes>
                        <archive>
                            <manifest>
                                <addClasspath>true</addClasspath>
                                <classpathPrefix>lib/</classpathPrefix>
                            </manifest>
                        </archive>
                    </configuration>
                </plugin>

In the EAR's POM, you need to list all the dependencies that the WARs have as 
direct dependencies in the EAR.  This will tell the plugin to copy all 
dependent jars to <EAR_ROOT>/lib.

                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-ear-plugin</artifactId>
                    <configuration>
                        <defaultJavaBundleDir>lib/</defaultJavaBundleDir>
                    </configuration>
                </plugin>


> WAR plugin should support minimal WARs for inclusion within an EAR
> ------------------------------------------------------------------
>
>          Key: MWAR-9
>          URL: http://jira.codehaus.org/browse/MWAR-9
>      Project: Maven 2.x War Plugin
>         Type: Improvement

>     Reporter: mike perham

>
>
> I noticed that when I build a WAR, I get a gigantic WEB-INF/lib with all my 
> deps.  This is fine for a default but maven should also support "skeleton" 
> WARs which will be packaged within an EAR.  We have EARs which package 3-4 
> WARs each and to have the deps duplicated within each WAR means we cannot 
> have shared data (since the classes are loaded within each WAR's classloader, 
> rather than by the parent EAR's classloader).  It also means 80MB EARs!  :-)
> It seems like two things need to happen:
> 1) Add a "skeleton" flag which prevents copying any dependencies to 
> WEB-INF/lib.
> 2) Instead generate a META-INF/MANIFEST.MF which has a Class-Path entry which 
> lists the relative locations of the dependencies within the parent EAR.
> Fabrice has basically the same idea written down here.  Starting with "- for 
> a War..." : 
> http://marc.theaimsgroup.com/?l=turbine-maven-user&m=112737860024530&w=2

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
   http://jira.codehaus.org/secure/Administrators.jspa
-
For more information on JIRA, see:
   http://www.atlassian.com/software/jira


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to