I am trying to use dagger-2 (Version 2.4) for my Java projects, using Eclipse Java EE IDE for Web Developers Mars.2 Release (4.5.2) and Eclipse AspectJ Development Tools Version: 1.8.6.20150608154244.
When I build my project, I get the following error message (with PROJECT_PATH being my project path):
[ERROR] Internal compiler error: java.lang.NoClassDefFoundError: org/eclipse/osgi/util/NLS at java.lang.ClassLoader.defineClass1(Native Method)
PROJECT_PATH\src\main\java\com\search\ServiceException.java:0
(no source information available)
[ERROR] ABORT
Apr 29, 2016 10:17:21 AM org.aspectj.weaver.tools.Jdk14Trace info
INFO: Dumping to PROJECT_PATH\.\ajcore.20160429.101721.961.txt
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 01:14 min
[INFO] Finished at: 2016-04-29T10:17:22+01:00
[INFO] Final Memory: 151M/1492M
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.codehaus.mojo:aspectj-maven-plugin:1.7:compile (default) on project search: AJC compiler errors:
[ERROR] error at (no source information available)
[ERROR] PROJECT_PATH\src\main\java\com\search\ServiceException.java:0::0 Internal compiler error: java.lang.NoClassDefFoundError: org/eclipse/osgi/util/NLS at java.lang.ClassLoader.defineClass1(Native Method)
[ERROR] abort ABORT -- (NoClassDefFoundError) org/eclipse/osgi/util/NLS
[ERROR] org/eclipse/osgi/util/NLS
[ERROR] java.lang.NoClassDefFoundError: org/eclipse/osgi/util/NLS
[ERROR] at java.lang.ClassLoader.defineClass1(Native Method)
[ERROR] at java.lang.ClassLoader.defineClass(ClassLoader.java:760)
[ERROR] at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
[ERROR] at java.net.URLClassLoader.defineClass(URLClassLoader.java:467)
[ERROR] at java.net.URLClassLoader.access$100(URLClassLoader.java:73)
[ERROR] at java.net.URLClassLoader$1.run(URLClassLoader.java:368)
[ERROR] at java.net.URLClassLoader$1.run(URLClassLoader.java:362)
[ERROR] at java.security.AccessController.doPrivileged(Native Method)
[ERROR] at java.net.URLClassLoader.findClass(URLClassLoader.java:361)
[ERROR] at org.codehaus.plexus.classworlds.realm.ClassRealm.loadClassFromSelf(ClassRealm.java:401)
[ERROR] at org.codehaus.plexus.classworlds.strategy.SelfFirstStrategy.loadClass(SelfFirstStrategy.java:42)
[ERROR] at org.codehaus.plexus.classworlds.realm.ClassRealm.unsynchronizedLoadClass(ClassRealm.java:271)
[ERROR] at org.codehaus.plexus.classworlds.realm.ClassRealm.loadClass(ClassRealm.java:247)
[ERROR] at org.codehaus.plexus.classworlds.realm.ClassRealm.loadClass(ClassRealm.java:239)
[ERROR] at org.eclipse.core.runtime.Platform.<clinit>(Platform.java:433)
[ERROR] at org.eclipse.jdt.internal.core.ExternalFoldersManager.<init>(ExternalFoldersManager.java:61)
[ERROR] at org.eclipse.jdt.internal.core.ExternalFoldersManager.getExternalFoldersManager(ExternalFoldersManager.java:68)
[ERROR] at org.eclipse.jdt.internal.core.JavaModelManager.<init>(JavaModelManager.java:489)
[ERROR] at org.eclipse.jdt.internal.core.JavaModelManager.<clinit>(JavaModelManager.java:1084)
[ERROR] at org.eclipse.jdt.core.JavaCore.getOption(JavaCore.java:3834)
[ERROR] at org.eclipse.jdt.core.ToolFactory.createScanner(ToolFactory.java:456)
[ERROR] at com.google.googlejavaformat.java.JavaInput.buildToks(JavaInput.java:318)
[ERROR] at com.google.googlejavaformat.java.JavaInput.buildToks(JavaInput.java:296)
[ERROR] at com.google.googlejavaformat.java.JavaInput.<init>(JavaInput.java:243)
[ERROR] at com.google.googlejavaformat.java.Formatter.formatSource(Formatter.java:154)
[ERROR] at com.google.googlejavaformat.java.Formatter.formatSource(Formatter.java:144)
[ERROR] at dagger.internal.codegen.SourceFileGenerator.generate(SourceFileGenerator.java:77)
[ERROR] at dagger.internal.codegen.ModuleProcessingStep.process(ModuleProcessingStep.java:132)
[ERROR] at dagger.shaded.auto.common.BasicAnnotationProcessor.process(BasicAnnotationProcessor.java:318)
[ERROR] at dagger.shaded.auto.common.BasicAnnotationProcessor.process(BasicAnnotationProcessor.java:171)
[ERROR] at org.aspectj.org.eclipse.jdt.internal.compiler.apt.dispatch.RoundDispatcher.handleProcessor(RoundDispatcher.java:140)
[ERROR] at org.aspectj.org.eclipse.jdt.internal.compiler.apt.dispatch.RoundDispatcher.round(RoundDispatcher.java:122)
[ERROR] at org.aspectj.org.eclipse.jdt.internal.compiler.apt.dispatch.BaseAnnotationProcessorManager.processAnnotations(BaseAnnotationProcessorManager.java:160)
[ERROR] at org.aspectj.org.eclipse.jdt.internal.compiler.Compiler.processAnnotations(Compiler.java:844)
[ERROR] at org.aspectj.org.eclipse.jdt.internal.compiler.Compiler.compile(Compiler.java:439)
[ERROR] at org.aspectj.org.eclipse.jdt.internal.compiler.Compiler.compile(Compiler.java:420)
[ERROR] at org.aspectj.ajdt.internal.core.builder.AjBuildManager.performCompilation(AjBuildManager.java:1036)
[ERROR] at org.aspectj.ajdt.internal.core.builder.AjBuildManager.performBuild(AjBuildManager.java:272)
[ERROR] at org.aspectj.ajdt.internal.core.builder.AjBuildManager.batchBuild(AjBuildManager.java:185)
[ERROR] at org.aspectj.ajdt.ajc.AjdtCommand.doCommand(AjdtCommand.java:112)
[ERROR] at org.aspectj.ajdt.ajc.AjdtCommand.runCommand(AjdtCommand.java:60)
[ERROR] at org.aspectj.tools.ajc.Main.run(Main.java:371)
[ERROR] at org.aspectj.tools.ajc.Main.runMain(Main.java:248)
[ERROR] at org.codehaus.mojo.aspectj.AbstractAjcCompiler.execute(AbstractAjcCompiler.java:524)
[ERROR] at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:134)
[ERROR] at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:208)
[ERROR] at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:153)
[ERROR] at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:145)
[ERROR] at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:116)
[ERROR] at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:80)
[ERROR] at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build(SingleThreadedBuilder.java:51)
[ERROR] at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:128)
[ERROR] at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:307)
[ERROR] at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:193)
[ERROR] at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:106)
[ERROR] at org.apache.maven.cli.MavenCli.execute(MavenCli.java:862)
[ERROR] at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:286)
[ERROR] at org.apache.maven.cli.MavenCli.main(MavenCli.java:197)
[ERROR] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
[ERROR] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
[ERROR] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
[ERROR] at java.lang.reflect.Method.invoke(Method.java:497)
[ERROR] at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:289)
[ERROR] at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:229)
[ERROR] at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:415)
[ERROR] at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:356)
[ERROR] Caused by: java.lang.ClassNotFoundException: org.eclipse.osgi.util.NLS
[ERROR] at org.codehaus.plexus.classworlds.strategy.SelfFirstStrategy.loadClass(SelfFirstStrategy.java:50)
[ERROR] at org.codehaus.plexus.classworlds.realm.ClassRealm.unsynchronizedLoadClass(ClassRealm.java:271)
[ERROR] at org.codehaus.plexus.classworlds.realm.ClassRealm.loadClass(ClassRealm.java:247)
[ERROR] at org.codehaus.plexus.classworlds.realm.ClassRealm.loadClass(ClassRealm.java:239)
[ERROR] ... 66 more
[ERROR] -> [Help 1]
[ERROR]
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR]
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoExecutionException
Yet, the code generated Dagger java files are correctly created and if the project is built again, no error is fired. But if the project is cleaned and built again, the same error appears.
Browsing on the web, I have seen different posts for similar issues, and one of the suggestion was to drop the aspectj plugin. In fact, if I remove any reference to aspectj from the Maven pom.xml of the project, it builds correctly with no error from the first time. Yet, I am in the situation of being unable to drop aspectj for my project.
Has anyone encountered the same obstacle? Any suggestion on how to make both dagger-2 and aspectj work together?