Details
-
Type:
Bug
-
Status:
Open
-
Priority:
Critical
-
Resolution: Unresolved
-
Affects Version/s: 1.4
-
Fix Version/s: None
-
Labels:None
-
Environment:Spring project build by maven 3.0.3 on Jenkins
-
Number of attachments :
Description
I've a project using Spring transactional annotation with aspectj compile time weaving.
When building over maven 3.0.3 with jenkins, sometimes it works fine, sometimes it fail in weaving some of my transactional annotated methods.
Using Jad over my failing war and a working one (source not modified between both build), I noticed that:
- Some classes are not woven at all on failing one
- Some classes are partially woven (ie. 5 methods on 7 are woven)
- Some classes are totally woven (correct)
This is very annoying as I cannot predict if a build is good or not. No error messages in maven output. I compared both build output (with -X and <verbose>true</verbose> in aspectj plugin) without anything significant.
Maven config:
<dependency> <groupId>org.aspectj</groupId> <artifactId>aspectjweaver</artifactId> <version>1.6.11</version> </dependency> <dependency> <groupId>org.aspectj</groupId> <artifactId>aspectjrt</artifactId> <version>1.6.11</version> </dependency> ... <plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>aspectj-maven-plugin</artifactId> <version>1.4</version> <configuration> <verbose>true</verbose> <source>${maven.compiler.source}</source> <target>${maven.compiler.target}</target> <aspectLibraries> <aspectLibrary> <groupId>org.springframework</groupId> <artifactId>spring-aspects</artifactId> </aspectLibrary> </aspectLibraries> </configuration> <executions> <execution> <phase>process-sources</phase> <goals> <goal>compile</goal> <!-- use this goal to weave all your main classes --> <goal>test-compile</goal> <!-- use this goal to weave all your test classes --> </goals> </execution> </executions> </plugin>
Thanks a lot for your work !
I'm having the exact same problem with 1.4. Is this still broken 8 months later?
It's completely inconsistent. Randomly changing irrelevant details affects the output. For example, changing the jenkins job name that builds the project changes which jars are missing aspects.
I've re-hosted the build env to multiple different environments with no consistent results. This is a 'very bad thing' given that it makes the output from all builds inconsistent and suspect.