Chuck,
with regards to your annotation scanning policy, you don't need an extra
MANIFEST, just an extra manifest entry in the manifest configuration :
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>2.1.1</version>
<configuration>
<warSourceExcludes>WEB-INF/lib/*.jar</warSourceExcludes>
<archive>
<manifest>
<addClasspath>true</addClasspath>
<classpathPrefix>lib/</classpathPrefix>
</manifest>
<manifestEntries>
<Class-Path>sample-ejb-${pom.version}.jar</Class-Path>
<Ignore-Scanning-Packages>org.apache.avalon,
org.apache.batik, org.apache.commons</Ignore-Scanning-Packages>
</manifestEntries>
</archive>
</configuration>
</plugin>
renders :
Manifest-Version: 1.0
Built-By: fbricon
Build-Jdk: 1.6.0_24
Class-Path: sample-ejb-0.0.1-SNAPSHOT.jar lib/sample-util-0.0.1-SNAPSH
OT.jar
Created-By: Maven Integration for Eclipse
Ignore-Scanning-Packages: org.apache.avalon, org.apache.batik, org.apa
che.commons
2011/6/16 Chuck Bridgham <[email protected]>
> Yep, completely agree - just wanted to mention existing api.. But per
> project datamodel properties are needed - please open an enhancement -
>
> Max - An example of a server specific MANIFEST entry could be for an
> annotation scanning policy ->
>
> Ignore-Scanning-Packages : org.apache.avalon, org.apache.batik,
> org.apache.commons
>
> Thanks - Chuck
>
> RAD Architect, Java EE Tools, WTP PMC
> IBM Software Lab - Research Triangle Park, NC
>
>
>
> From: Fred Bricon <[email protected]>
> To: Chuck Bridgham/Raleigh/IBM@IBMUS
> Cc: Maven Integration for Eclipse users mailing list <
> [email protected]>, Max Rydahl Andersen <[email protected]>,
> Snjezana Peco <[email protected]>
> Date: 06/16/2011 10:04 AM
> Subject: Re: New m2e-wtp behaviour regarding classpath management
> ------------------------------
>
>
>
> About the workspace preference settings, I'm not sure m2e-wtp should touch
> these. That could potentially break non maven project behaviour.
> If I were to use them now, I would have to :
> - store existing UseXYZLibrary value in a local variable,
> - set UseXYZLibrary to false
> - add facet
> - restore UseXYZLibrary to its former value
>
> I would prefer some options passed to the IDataModel like
> IDataModel modelConfig = ....
> modelConfig.setProperty(USE_WEBAPP_LIBRARY, false);
> modelConfig.setProperty(GENERATE_MANIFEST, false);
>
> If that sounds reasonable, I'll create the feature requests on BZ.
>
> regards,
>
> Fred Bricon
>
> 2011/6/16 Chuck Bridgham <*[email protected]* <[email protected]>>
> Thanks Fred,
>
> These are very useful features..
>
> In testing m2e-wtp - I also remove the WTP containers as they duplicate the
> Maven container's purpose. For new projects, there is an existing
> preference setting in WTP that disables these libraries from being added
> (Doesn't remove entries from existing projects).. They are
> J2EEPreferences.getUseEARLibraries() and *J2EEPreferences*.
> getUseWebLibaries() - misspellings and all! - Of course these are
> workspace preferences, but it may be worth settings these to false or
> exposing these as part of m2e -wtp preferences?
>
> I'm also worried about the MANIFEST generation. I agree wtp should be more
> flexible for source folder MANIFEST file generation, but in our case we need
> a source copy. I know there used to be a pom setting to re-use an existing
> MANIFEST file in the generation of the archive copy. This is important to
> us, because of server specific settings that are specified in the MANIFEST
> file.
>
> We recommended using something like this:
> <groupId>org.apache.maven.plugins</groupId>
> <artifactId>maven-jar-plugin</artifactId>
> <configuration>
> <archive>
>
> <manifestFile>src/main/java/META-INF/MANIFEST.MF</manifestFile>
> </archive>
> </configuration>
>
> Do you know if we can still re-use a file AND generate the "Class-Path: "
> section based on the pom?
>
> Thanks - Chuck
>
> RAD Architect, Java EE Tools, WTP PMC
> IBM Software Lab - Research Triangle Park, NC
>
>
>
> From: Fred Bricon <*[email protected]* <[email protected]>>
> To: Maven Integration for Eclipse users mailing list <*
> [email protected]* <[email protected]>>
> Cc: Chuck Bridgham/Raleigh/IBM@IBMUS, Max Rydahl Andersen <*
> [email protected]* <[email protected]>>, Snjezana Peco <*
> [email protected]* <[email protected]>>
> Date: 06/16/2011 04:39 AM
> Subject: New m2e-wtp behaviour regarding classpath management
> ------------------------------
>
>
>
>
> Hi,
>
> 2 significant changes have been made to m2e-wtp 0.13.0 with regard to
> classpath management :
>
> - The WTP classpath libraries are gone [1] : The webapp and EAR libraries
> always conflicted somehow with the Maven library. In order to workaround
> these conflicts, we basically had to jump through hoops to move classpath
> entries from one library to the other. Another big problem we had while
> keeping the WTP libraries was dependency leakage when running unit tests
> [2][3][4]. The Maven library handles test dependencies very well, but once
> you add the WTP libraries, you start seeing inconsistent behavior between
> Maven CLI and Eclipse. This is because regular WTP dependencies basically
> add EVERYHTING to the classpath.
>
> - Manifest management has been changed [5]. Before, in m2e-wtp, the
> manifest was generated "manually" using WTP's API, for web projects only. In
> the process, the manifest kinda fixed some maven shortcomings in order to
> handle skinny wars (didn't add a classpath prefix for EJBs, contrary to
> maven). Now, for Web, EAR, EJB, Utility and Connector projects, a manifest
> is generated via a call to the Maven's archiver.
> That means no more impedance mismatch between Maven and Eclipse manifests.
> Manifest customization is reflected on the fly in the generated file.
> For jar, ejb and connector projects, it is generated under target/classes.
> For web projects, it goes under target/m2e-wtp/web-resources/ and for EARs,
> goes under target/m2e-wtp/ear-resources/
> Since the EAR library is gone, the manifest is no longer used to reflect
> compile classpath within Eclipse and is only used for runtime classpath
> resolution.
> Since it now follows the same rules as Maven, how do you handle skinny wars
> with ejbs and classpath prefix? One solution is to use your own Class-Path
> entry, which will be appended with the classpath computed by the maven
> archiver. So, for instance :
>
> <plugin>
> <groupId>org.apache.maven.plugins</groupId>
> <artifactId>maven-war-plugin</artifactId>
> <version>2.1.1</version>
> <configuration>
> <warSourceExcludes>WEB-INF/lib/*.jar</warSourceExcludes>
> <archive>
> <manifest>
> <addClasspath>true</addClasspath>
> <classpathPrefix>lib/</classpathPrefix>
> </manifest>*
> <manifestEntries>
>
> <Class-Path>sample-ejb-${pom.version}.jar</Class-Path>
> </manifestEntries>*
> </archive>
> </configuration>
> </plugin>
>
> will generate something like :
>
> Manifest-Version: 1.0
> Built-By: fbricon
> Build-Jdk: 1.6.0_24
> Class-Path:* sample-ejb-0.0.1-SNAPSHOT.jar* lib/sample-util-0.0.1-SNAPSH
> OT.jar
> Created-By: Maven Integration for Eclipse
>
> Of course, the "Created-By: Maven Integration for Eclipse" entry can be
> overwritten using your own value :
> <manifestEntries>
> <Created-By>My kick-ass IDE</Created-By>
> </manifestEntries>
>
> One last thing, I've tried to delete all new MANIFESTS.MFs automatically
> generated by WTP. So hopefully, your source control shouldn't be polluted
> anymore.
>
> You can try the nightly build to test these changes, see if it doesn't
> disrupt existing behaviour in your projects [7]
> m2e-wtp 0.13.0 works with m2e 1.0.0 and is compatible with Helios (e3.6)
> and Indigo (e3.7). It's incompatible with former Eclipse versions
>
> Expect a new release next week, at the same time as Eclipse Indigo -more or
> less-.
>
> regards,
>
> Fred Bricon
>
> [1]
> *https://issues.sonatype.org/browse/MECLIPSEWTP-133*<https://issues.sonatype.org/browse/MECLIPSEWTP-133>Remove
> Webapp and EAR classpath libraries from WTP projects
> [2]
> *https://issues.sonatype.org/browse/MECLIPSEWTP-10*<https://issues.sonatype.org/browse/MECLIPSEWTP-10>Wrong
> runtime classpath resolution for war packaging: application-classpath
> includes test classes from dependencies (projects)
> [3]
> *https://issues.sonatype.org/browse/MECLIPSEWTP-52*<https://issues.sonatype.org/browse/MECLIPSEWTP-52>Optional
> dependencies are available during dependent web projects tests
> [4]
> *https://issues.sonatype.org/browse/MECLIPSEWTP-91*<https://issues.sonatype.org/browse/MECLIPSEWTP-91>WTP
> and Multi-module project woes
> [5]
> *https://issues.sonatype.org/browse/MECLIPSEWTP-45*<https://issues.sonatype.org/browse/MECLIPSEWTP-45>Bad
> MANIFEST in Jar (WTP)
> [6] *
> http://download.jboss.org/jbosstools/builds/staging/m2eclipse-wtp-e37/all/repo/
> *<http://download.jboss.org/jbosstools/builds/staging/m2eclipse-wtp-e37/all/repo/>
>
> --
> "Have you tried turning it off and on again" - The IT Crowd
>
>
>
> --
> "Have you tried turning it off and on again" - The IT Crowd
>
--
"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