eclipse-aspectj / aspectj

Other
291 stars 84 forks source link

Issue compiling when using m2e and aspectj but only visible when using 'Maven Project Builder' not when using 'mvn clean compile' #264

Closed mpet closed 7 months ago

mpet commented 10 months ago

Hi,

We are supporting Eclipse usage in our organization for development of our product. I know you know there are issues with aspectj and m2e and I am trying to figure out what is going on.

When we run:

mvn clean compile

Here is an excerpt for the log with -X

INFO] --- aspectj-maven-plugin:1.13.1:compile (compile_with_aspectj) @ msran-jcat-extension ---
[DEBUG] Configuring mojo dev.aspectj:aspectj-maven-plugin:1.13.1:compile from plugin realm ClassRealm[plugin>dev.aspectj:aspectj-maven-plugin:1.13.1, parent: jdk.internal.loader.ClassLoaders$AppClassLoader@2a139a55]
[DEBUG] Configuring mojo 'dev.aspectj:aspectj-maven-plugin:1.13.1:compile' with basic configurator -->
[DEBUG]   (s) XaddSerialVersionUID = false
[DEBUG]   (s) Xajruntimetarget = 1.5
[DEBUG]   (s) argumentFileName = builddef.lst
[DEBUG]   (f) aspectDirectory = src/main/aspect
[DEBUG]   (s) groupId = com.company.commonlibrary
[DEBUG]   (s) artifactId = statistics-collector-framework
[DEBUG]   (s) groupId = com.company.commonlibrary
[DEBUG]   (s) artifactId = common-utilities
[DEBUG]   (f) aspectLibraries = [com.company.commonlibrary:statistics-collector-framework, com.company.commonlibrary:common-utilities]
[DEBUG]   (f) basedir = C:\Users\eraonel\git\mje\msran-jcat-extension
[DEBUG]   (f) complianceLevel = 17
[DEBUG]   (s) enablePreview = false
[DEBUG]   (s) encoding = UTF-8
[DEBUG]   (f) excludes = [**/generated-sources/annotations/**]
[DEBUG]   (f) forceAjcCompile = false
[DEBUG]   (f) generatedSourcesDirectory = C:\Users\eraonel\git\mje\msran-jcat-extension\target\generated-sources\aspectj-maven-plugin
[DEBUG]   (f) includes = [**/*.java, **/*.aj]
[DEBUG]   (f) outputDirectory = C:\Users\eraonel\git\mje\msran-jcat-extension\target\classes
[DEBUG]   (f) project = MavenProject: com.company.msran.jcat:msran-jcat-extension:1.9.5070-SNAPSHOT @ C:\Users\eraonel\git\mje\msran-jcat-extension\pom.xml
[DEBUG]   (f) skip = false
[DEBUG]   (f) testAspectDirectory = src/test/aspect
[DEBUG] -- end configuration --
[DEBUG] Not adding non-existent or already added aspectSourcePathDir [C:\Users\eraonel\git\mje\msran-jcat-extension\src\main\aspect] to compileSourceRoots.
[DEBUG] Not adding non-existent or already added testAspectSourcePathDir [C:\Users\eraonel\git\mje\msran-jcat-extension\src\test\aspect] to testCompileSourceRoots.
[DEBUG] Adding -aspectpath: C:\repo\eraonel\.m2\repository\com\company\commonlibrary\statistics-collector-framework\0.0.181\statistics-collector-framework-0.0.181.jar;C:\repo\eraonel\.m2\repository\com\company\commonlibrary\common-utilities\9.0.7\common-utilities-9.0.7.jar
[DEBUG] Running : ajc -Xajruntimetarget:1.5 -encoding UTF-8 -17 -classpath <**complete classpath left out due to size**> -d C:\Users\eraonel\git\mje\msran-jcat-extension\target\classes -s C:\Users\eraonel\git\mje\msran-jcat-extension\target\generated-sources\aspectj-maven-plugin C:\Users\eraonel\git\mje\msran-jcat-extension\src\main\java\com\company\msran\jcat\GtmsHelper.java C:\Users\eraonel\git\mje\msran-jcat-extension\src\main\java\com\company\msran\jcat\internal\MjeTracer.java C:\Users\eraonel\git\mje\msran-jcat-extension\src\main\java\com\company\msran\jcat\internal\PrintWebLinkSubscriber.java C:\Users\eraonel\git\mje\msran-jcat-extension\src\main\java\com\company\msran\jcat\JcatNGConstants.java C:\Users\eraonel\git\mje\msran-jcat-extension\src\main\java\com\company\msran\jcat\ListenerHandler.java C:\Users\eraonel\git\mje\msran-jcat-extension\src\main\java\com\company\msran\jcat\logging\writers\tr\CompiledTestType.java C:\Users\eraonel\git\mje\msran-jcat-extension\src\main\java\com\company\msran\jcat\logging\writers\tr\ObjectFactory.java C:\Users\eraonel\git\mje\msran-jcat-extension\src\main\java\com\company\msran\jcat\logging\writers\tr\SuiteType.java C:\Users\eraonel\git\mje\msran-jcat-extension\src\main\java\com\company\msran\jcat\logging\writers\tr\Xmlresults.java C:\Users\eraonel\git\mje\msran-jcat-extension\src\main\java\com\company\msran\jcat\LogUtil.java C:\Users\eraonel\git\mje\msran-jcat-extension\src\main\java\com\company\msran\jcat\Mje.java C:\Users\eraonel\git\mje\msran-jcat-extension\src\main\java\com\company\msran\jcat\MjeTestNGContextHolder.java C:\Users\eraonel\git\mje\msran-jcat-extension\src\main\java\com\company\msran\jcat\MsranJcatTestCaseUpdater.java C:\Users\eraonel\git\mje\msran-jcat-extension\src\main\java\com\company\msran\jcat\MsranJcatTestUpdater.java C:\Users\eraonel\git\mje\msran-jcat-extension\src\main\java\com\company\msran\jcat\MsranJcatTroubleshooterIdentificationHelper.java C:\Users\eraonel\git\mje\msran-jcat-extension\src\main\java\com\company\msran\jcat\MsranTestNgListener.java C:\Users\eraonel\git\mje\msran-jcat-extension\src\main\java\com\company\msran\jcat\NosaRecordWriter.java C:\Users\eraonel\git\mje\msran-jcat-extension\src\main\java\com\company\msran\jcat\TRStatisticsLogWriter.java C:\Users\eraonel\git\mje\msran-jcat-extension\src\main\java\com\company\msran\jcat\VerdictOverridingInvokedMethodListener.java C:\Users\eraonel\git\mje\msran-jcat-extension\src\main\java\com\company\msran\listeners\CcnListener.java C:\Users\eraonel\git\mje\msran-jcat-extension\src\main\java\com\company\msran\listeners\CfiCmdClient.java C:\Users\eraonel\git\mje\msran-jcat-extension\src\main\java\com\company\msran\listeners\CfiCommand.java C:\Users\eraonel\git\mje\msran-jcat-extension\src\main\java\com\company\msran\listeners\CFITraceListener.java C:\Users\eraonel\git\mje\msran-jcat-extension\src\main\java\com\company\msran\listeners\CosListener.java C:\Users\eraonel\git\mje\msran-jcat-extension\src\main\java\com\company\msran\listeners\CustomDataReportListener.java C:\Users\eraonel\git\mje\msran-jcat-extension\src\main\java\com\company\msran\listeners\data\mjedatareporting\AlarmData.java C:\Users\eraonel\git\mje\msran-jcat-extension\src\main\java\com\company\msran\listeners\data\mjedatareporting\JcatResult.java C:\Users\eraonel\git\mje\msran-jcat-extension\src\main\java\com\company\msran\listeners\data\mjedatareporting\MethodData.java C:\Users\eraonel\git\mje\msran-jcat-extension\src\main\java\com\company\msran\listeners\data\mjedatareporting\NodeAlarmData.java C:\Users\eraonel\git\mje\msran-jcat-extension\src\main\java\com\company\msran\listeners\data\mjedatareporting\SwVersionData.java C:\Users\eraonel\git\mje\msran-jcat-extension\src\main\java\com\company\msran\listeners\data\mjedatareporting\TestData.java C:\Users\eraonel\git\mje\msran-jcat-extension\src\main\java\com\company\msran\listeners\data\mjedatareporting\TestFrameworkData.java C:\Users\eraonel\git\mje\msran-jcat-extension\src\main\java\com\company\msran\listeners\data\mjedatareporting\TestProjectData.java C:\Users\eraonel\git\mje\msran-jcat-extension\src\main\java\com\company\msran\listeners\data\mjedatareporting\TestSummaryData.java C:\Users\eraonel\git\mje\msran-jcat-extension\src\main\java\com\company\msran\listeners\data\mjedatareporting\UpgradePackageData.java C:\Users\eraonel\git\mje\msran-jcat-extension\src\main\java\com\company\msran\listeners\EiffelEventHandlingListener.java C:\Users\eraonel\git\mje\msran-jcat-extension\src\main\java\com\company\msran\listeners\ElasticSearchListener.java C:\Users\eraonel\git\mje\msran-jcat-extension\src\main\java\com\company\msran\listeners\EsiListener.java C:\Users\eraonel\git\mje\msran-jcat-extension\src\main\java\com\company\msran\listeners\FartTraceListener.java C:\Users\eraonel\git\mje\msran-jcat-extension\src\main\java\com\company\msran\listeners\helpers\CustomDataReportHelper.java C:\Users\eraonel\git\mje\msran-jcat-extension\src\main\java\com\company\msran\listeners\helpers\MjeDataReportingHelper.java C:\Users\eraonel\git\mje\msran-jcat-extension\src\main\java\com\company\msran\listeners\helpers\MjeDataReportingUtils.java C:\Users\eraonel\git\mje\msran-jcat-extension\src\main\java\com\company\msran\listeners\helpers\NodeAlarmDataHelper.java C:\Users\eraonel\git\mje\msran-jcat-extension\src\main\java\com\company\msran\listeners\helpers\TestSummaryDataHelper.java C:\Users\eraonel\git\mje\msran-jcat-extension\src\main\java\com\company\msran\listeners\helpers\UpgradePackageDataReportHelper.java C:\Users\eraonel\git\mje\msran-jcat-extension\src\main\java\com\company\msran\listeners\InsightListener.java C:\Users\eraonel\git\mje\msran-jcat-extension\src\main\java\com\company\msran\listeners\MjeDataReportingListener.java C:\Users\eraonel\git\mje\msran-jcat-extension\src\main\java\com\company\msran\listeners\MjeStatisticsListener.java C:\Users\eraonel\git\mje\msran-jcat-extension\src\main\java\com\company\msran\listeners\NodeRecoveryListener.java C:\Users\eraonel\git\mje\msran-jcat-extension\src\main\java\com\company\msran\listeners\NodeSystemConstantListener.java C:\Users\eraonel\git\mje\msran-jcat-extension\src\main\java\com\company\msran\listeners\NosaEventWarnAndErrorLogger.java C:\Users\eraonel\git\mje\msran-jcat-extension\src\main\java\com\company\msran\listeners\NosaListener.java C:\Users\eraonel\git\mje\msran-jcat-extension\src\main\java\com\company\msran\listeners\NosaListenerDataProvider.java C:\Users\eraonel\git\mje\msran-jcat-extension\src\main\java\com\company\msran\listeners\OpenSearchListener.java C:\Users\eraonel\git\mje\msran-jcat-extension\src\main\java\com\company\msran\listeners\Qa.java C:\Users\eraonel\git\mje\msran-jcat-extension\src\main\java\com\company\msran\listeners\ResourceEmulatorListener.java C:\Users\eraonel\git\mje\msran-jcat-extension\src\main\java\com\company\msran\listeners\TgfSystemConstantListener.java C:\Users\eraonel\git\mje\msran-jcat-extension\src\main\java\com\company\msran\listeners\TraceAndErrorHelper.java C:\Users\eraonel\git\mje\msran-jcat-extension\src\main\java\com\company\msran\listeners\TraceAndErrorListener.java C:\Users\eraonel\git\mje\msran-jcat-extension\src\main\java\com\company\msran\listeners\TraceorderListener.java C:\Users\eraonel\git\mje\msran-jcat-extension\src\main\java\com\company\msran\listeners\TRexCollectFileListener.java C:\Users\eraonel\git\mje\msran-jcat-extension\src\main\java\com\company\msran\listeners\UpToIntegerHelper.java C:\Users\eraonel\git\mje\msran-jcat-extension\src\main\java\com\company\msran\tardb\CurrentUpgradePackage.java C:\Users\eraonel\git\mje\msran-jcat-extension\src\main\java\com\company\msran\tardb\ResourceFile.java C:\Users\eraonel\git\mje\msran-jcat-extension\src\main\java\com\company\msran\tardb\TarDbConstants.java C:\Users\eraonel\git\mje\msran-jcat-extension\src\main\java\com\company\msran\tardb\TarDBListener.java C:\Users\eraonel\git\mje\msran-jcat-extension\src\main\java\com\company\msran\te\TraceAndErrorConfigurationData.java
[DEBUG] Compiling and weaving 67 sources to C:\Users\eraonel\git\mje\msran-jcat-extension\target\classes
[DEBUG] Arguments file written : C:\Users\eraonel\git\mje\msran-jcat-extension\target\classes\builddef.lst
[INFO] Showing AJC message detail for messages of types: [error, warning, fail]
[DEBUG] Pipelining compilation
[DEBUG] compiling C:\Users\eraonel\git\mje\msran-jcat-extension\src\main\java\com\company\msran\jcat\GtmsHelper.java
[DEBUG] Compiler took 6063ms

Compilation is successful.

However I am changing code and want to have automatic build.

We have installed in Eclipse

AspectJ Development Tools 2.2.4.202311040357 org.eclipse.ajdt.feature.group Eclipse AspectJ Development Tools M2E - Maven Integration for Eclipse 2.4.100.20230827-1557 org.eclipse.m2e.feature.feature.group Eclipse.org - m2e
Maven Integration for AJDT (Optional) 0.14.5 org.maven.ide.eclipse.ajdt.feature.feature.group Sonatype, Inc.

and in maven pom.xml

dev.aspectj aspectj-maven-plugin 1.13.1
org.eclipse.core.runtime.AssertionFailedException: assertion failed: Marker property value is too long: Failed to execute mojo dev.aspectj:aspectj-maven-plugin:1.13.1:compile {execution: compile_with_aspectj} (dev.aspectj:aspectj-maven-plugin:1.13.1:compile:compile_with_aspectj:compile)

org.eclipse.core.runtime.CoreException: Failed to execute mojo dev.aspectj:aspectj-maven-plugin:1.13.1:compile {execution: compile_with_aspectj}
    at org.eclipse.m2e.core.internal.embedder.MavenExecutionContext.executeMojo(MavenExecutionContext.java:340)
    at org.eclipse.m2e.core.internal.embedder.MavenExecutionContext.lambda$0(MavenExecutionContext.java:291)
    at org.eclipse.m2e.core.internal.embedder.MavenExecutionContext.executeBare(MavenExecutionContext.java:394)
    at org.eclipse.m2e.core.internal.embedder.MavenExecutionContext.execute(MavenExecutionContext.java:275)
    at org.eclipse.m2e.core.internal.embedder.MavenExecutionContext.execute(MavenExecutionContext.java:290)
    at org.eclipse.m2e.core.project.configurator.MojoExecutionBuildParticipant.build(MojoExecutionBuildParticipant.java:57)
    at org.eclipse.m2e.core.internal.builder.MavenBuilderImpl.lambda$2(MavenBuilderImpl.java:153)
    at java.base/java.util.LinkedHashMap.forEach(LinkedHashMap.java:721)
    at org.eclipse.m2e.core.internal.builder.MavenBuilderImpl.build(MavenBuilderImpl.java:133)
    at org.eclipse.m2e.core.internal.builder.MavenBuilder$1.method(MavenBuilder.java:164)
    at org.eclipse.m2e.core.internal.builder.MavenBuilder$1.method(MavenBuilder.java:1)
    at org.eclipse.m2e.core.internal.builder.MavenBuilder$BuildMethod.lambda$1(MavenBuilder.java:109)
    at org.eclipse.m2e.core.internal.embedder.MavenExecutionContext.executeBare(MavenExecutionContext.java:394)
    at org.eclipse.m2e.core.internal.embedder.MavenExecutionContext.execute(MavenExecutionContext.java:228)
    at org.eclipse.m2e.core.internal.builder.MavenBuilder$BuildMethod.lambda$0(MavenBuilder.java:100)
    at org.eclipse.m2e.core.internal.embedder.MavenExecutionContext.executeBare(MavenExecutionContext.java:394)
    at org.eclipse.m2e.core.internal.embedder.MavenExecutionContext.execute(MavenExecutionContext.java:275)
    at org.eclipse.m2e.core.internal.embedder.MavenExecutionContext.execute(MavenExecutionContext.java:214)
    at org.eclipse.m2e.core.internal.builder.MavenBuilder$BuildMethod.execute(MavenBuilder.java:83)
    at org.eclipse.m2e.core.internal.builder.MavenBuilder.build(MavenBuilder.java:192)
    at org.eclipse.core.internal.events.BuildManager$2.run(BuildManager.java:1079)
    at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:45)
    at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:296)
    at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:352)
    at org.eclipse.core.internal.events.BuildManager$1.run(BuildManager.java:441)
    at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:45)
    at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:444)
    at org.eclipse.core.internal.events.BuildManager.basicBuildLoop(BuildManager.java:555)
    at org.eclipse.core.internal.events.BuildManager.basicBuildLoop(BuildManager.java:503)
    at org.eclipse.core.internal.events.BuildManager.build(BuildManager.java:585)
    at org.eclipse.core.internal.events.AutoBuildJob.doBuild(AutoBuildJob.java:207)
    at org.eclipse.core.internal.events.AutoBuildJob.run(AutoBuildJob.java:300)
    at org.eclipse.core.internal.jobs.Worker.run(Worker.java:63)
Caused by: org.codehaus.mojo.aspectj.CompilationFailedException: AJC compiler errors:
error at import com.company.msran.helpers.Helpers;
       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
C:\Users\eraonel\git\mje\msran-jcat-extension\src\main\java\com\company\msran\jcat\internal\PrintWebLinkSubscriber.java:4:0::0 The import com.company.msran.helpers.Helpers cannot be resolved
error at Helpers.util().jcatHtmlReportHelper().printWebLink(event.getFile(), event.getName());

so the same code now gives exception when compiling using Maven Project Builder and it get many of these type of errors where classes cannot be resolved even if I can select then in editor ( where the error is visible) and jump to the class that cannot be resolved.

  1. Have you seen this kind of problem?
  2. Is there a way to enable debug for m2e?

I not after blaming but trying to find a solution for this problem.

br,

//mikael

kriegaex commented 10 months ago

You might be surprised to read this, but I do not use the Eclipse IDE a lot, despite AspectJ and AJDT being Eclipse projects. I normally use IntelliJ IDEA, importing Maven projects into that environment. So, I have not experienced this problem before. Can you please provide a minimal, but complete Maven project reproducing this behaviour? Please also tell me your Eclipse version and which exact update sites you installed the plugins you mentioned above from. I assume you know this page.

mpet commented 10 months ago

Yes I read your https://github.com/eclipse-aspectj/aspectj/blob/master/docs/developer/IDE.md#eclipse and used what you recommend. I think it is the builders in eclipse that causes the issues. I mean since it is possible to build using mvn clean compile and then it works! So no ideas how the Eclipse Maven builder works?

I can try to create a simple project and see if we get the same problem.

Yes this basically happens for 4.x.x version s of Eclipse.

kriegaex commented 7 months ago

After several months without a reproducer, I am closing this issue. Feel free to provide a reproducer, then I can reopen it.