Affects Version/s: 2.1
Fix Version/s: 2.2
Environment:Apache Maven 2.2.1 (r801777; 2009-08-06 21:16:01+0200)
Java version: 1.6.0_18
Default locale: de_DE, platform encoding: Cp1252
OS name: "windows 7" version: "6.1" arch: "amd64" Family: "windows"
There seems to be a regression between 2.1-beta-1 and 2.1 with regard to archiveClasses and attachClasses options.
My use case:
I have a WAR project with Java classes and I am setting both archiveClasses and attachClasses to true.
With 2.1-beta-1 it was working correctly (mvn clean install) --> I got classes packaged into a JAR and placed into WEB-INF/lib and I got that JAR artifact deployed to my Maven repository.
Just upgraded to 2.1 and I got the following with the same use case: I got classes packaged into a JAR and placed into WEB-INF/lib (correct) and I got an empty JAR artifact (only META-INF/ present) deployed to my Maven repository (incorrect).
Looking at the code in 2.1 of WarMojo (line 230) I am seeing that the classes folder (for classes to be included into attached artifact) is empty, because it was cleared before due to archiveClasses=true
Trying to debug both code branches I am seeing a difference between 2.1-beta-1 and 2.1 in that the
getJarArchiver().getDirs() before the call to packager.packageClasses() method (line 233/234)
is empty in the 2.1:
whereas it is not in 2.1-beta-1. It contains a list of all my classes, perhaps because the same archiver instance was used to package them into JAR for WEB-INF/lib.
That is why I am getting all my classes in the attached artifact with 2.1-beta-1
I would really need your help in understanding the "correct" behaviour.
Is this a regression bug for 2.1 or I am completely wrong in my expectations about archiveClasses and attachClasses used together?