Heiko,

Even without m2e(-wtp), you'd get the same results in CLI builds :
maven-war-plugin doesn't know the lib prefix shouldn't be added to your ejb
project classpath entry.

As a workaround, you need to
* declare your ejb dependency (pas-system)  with <scope>provided</scope>
* Use a custom classpath entry :
<archive>
    <manifestEntries>
        <Class-Path>pas-system-${project.version}.jar</Class-Path>
    </manifestEntries>
</archive>

other classpath entries (infered from maven dependencies) will be appended
by the archiver automagically (works inside m2e-wtp too). As you can see,
property interpolation works, so that gives you some extra flexibility.

HIH

Fred Bricon


On Tue, Apr 3, 2012 at 3:16 PM, <[email protected]> wrote:

>
> Hello,
>
> I've been using m2e 1.1 together with m2e-wtp 0.15.2 for some time and
> came across an issue that bugs me when deploying an application to
> WebSphere Application Server 8.0.
>
> I'm using the maven-war-plugin version 2.2, the maven-ear-plugin version
> 2.7  and maven-ejb-plugin version 2.3. I implemented the known workaround
> to support skinny wars as following within the maven-war-plugin:
>
> <plugin>
>     <groupId>org.apache.maven.plugins</groupId>
>     <artifactId>maven-war-plugin</artifactId>
>     <configuration>
>         <failOnMissingWebXml>false</failOnMissingWebXml>
>         <packagingExcludes>WEB-INF/lib/*.jar</packagingExcludes>
>
>         <archive>
>             <manifest>
>                 <addClasspath>true</addClasspath>
>                 <classpathPrefix>lib/</classpathPrefix>
>             </manifest>
>         </archive>
>     </configuration>
> </plugin>
>
> Inside the EAR plugin, the configuration parameter 'defaultLibBundleDir'
> is set to 'lib/' too. All dependencies are added to both the ear and the
> war project with scope 'compile'.
>
> Now I got confused by the generated war, as the included MANIFEST.MF
> contains a Class-Path entry that lists ejbs under lib/ too, while the
> maven-ear-plugin includes them in the root directory of the ear.
>
> Manifest-Version: 1.0
> Build-*Jdk*: 1.6.0
> Built-By: zmbfts4
> Class-Path: *lib*/pas-tools-2012.2.0.jar *lib*/logging-5.0.0.jar *lib*/*
> util*-
>  5.0.0.jar *lib*/pas-system-2012.2.0.jar *lib*/jaxb2-basics-runtime-0.6.3.
>  jar *lib*/*joda*-time-2.0.jar
>
> Here, lib/pas-system-2012.2.0.jar should be without 'lib/' as it is an EJB
> Project and this way listed as dependency.
>
> Under WebSphere, this leads to an error, as classes from the WAR do no
> longer find classes from the EJB.
>
> When I manually generate the classpath entry for the MANIFEST.MF, they
> application works correctly:
>
> <archive>
>     <manifestEntries>
>         <Class-Path>lib/pas-tools-2012.2.0.jar lib/logging-5.0.0.jar
>                  lib/util-5.0.0.jar pas-system-2012.2.0.jar
>                  lib/jaxb2-basics-runtime-0.6.3.jar lib/joda-time-2.0.jar
>         </Class-Path>
>     </manifestEntries>
> </archive>
>
> Does anybody know what the problem here might be? Do I do something wrong
> here?
>
> Thank you
>
> Heiko
> If you are not the intended addressee, please inform us immediately that
> you have received this e-mail in error, and delete it. We thank you for
> your cooperation.
>
> _______________________________________________
> m2e-users mailing list
> [email protected]
> https://dev.eclipse.org/mailman/listinfo/m2e-users
>
>


-- 
"Have you tried turning it off and on again" - The IT Crowd
_______________________________________________
m2e-users mailing list
[email protected]
https://dev.eclipse.org/mailman/listinfo/m2e-users

Reply via email to