jcabi / jcabi-aspects

Collection of AspectJ Java Aspects to facilitate aspect-oriented programming patterns: logging, caching, validating, etc.
https://aspects.jcabi.com
Other
527 stars 150 forks source link

Error NoClassDefFoundError(com/google/common/io/Files) #100

Open johnisutanto opened 9 years ago

johnisutanto commented 9 years ago

I am just getting started in using jcabi-maven-plugin. I started with the latest version posted here 0.9.4 and I am working with JDK 6. The dependencies I have are as follow:

com.jcabi jcabi-aspects 0.20

org.aspectj aspectjrt 1.6.12

But building my project, I am getting the following error. It's complaining it couldn't find some files from google. Do I need to specify some other dependencies? I tried adding google guava, but still got the same error. Also, I specify jcabi-aspects 0.20, but it's using 0.17.1 from the log. Not sure why. I tried to delete this from local m2 repository, but then when I built, it downloaded the same version from sonatype.

ERROR LOG:
[info] jcabi-aspects 0.17.1/8b0e260 started new daemon thread jcabi-loggable for watching of @Loggable annotated methods
[INFO] [jcabi:ajc {execution: default}]
[INFO] Created temp dir /xxx/target/jcabi-ajc
[INFO] jcabi-aspects 0.17.1/8b0e260 started new daemon thread jcabi-cacheable for automated cleaning of expired @Cacheable values
[ERROR] #execute(): thrown java.lang.NoClassDefFoundError(com/google/common/io/Files) out of com.jcabi.maven.plugin.AjcMojo#sourceroots_aroundBody12[360] in 8ms
[FATAL ERROR] com.jcabi.maven.plugin.AjcMojo#execute() caused a linkage error (java.lang.NoClassDefFoundError) and may be out-of-date. Check the realms:
[FATAL ERROR] Plugin realm = app0.child-container[com.jcabi:jcabi-maven-plugin:0.9.4]
urls[0] = file:/xxx/.m2/repository/com/jcabi/jcabi-maven-plugin/0.9.4/jcabi-maven-plugin-0.9.4.jar
urls[1] = file:/xxx/.m2/repository/com/jcabi/jcabi-log/0.14.1/jcabi-log-0.14.1.jar
urls[2] = file:/xxx/.m2/repository/org/slf4j/slf4j-api/1.7.5/slf4j-api-1.7.5.jar
urls[3] = file:/xxx/.m2/repository/com/jcabi/jcabi-aspects/0.17.1/jcabi-aspects-0.17.1.jar
urls[4] = file:/xxx/.m2/repository/org/aspectj/aspectjrt/1.8.1/aspectjrt-1.8.1.jar
urls[5] = file:/xxx/.m2/repository/javax/validation/validation-api/1.1.0.Final/validation-api-1.1.0.Final.jar
urls[6] = file:/xxx/.m2/repository/com/jcabi/jcabi-maven-slf4j/0.8/jcabi-maven-slf4j-0.8.jar
urls[7] = file:/xxx/.m2/repository/org/apache/maven/shared/maven-dependency-tree/2.1/maven-dependency-tree-2.1.jar
urls[8] = file:/xxx/.m2/repository/org/codehaus/plexus/plexus-utils/1.1/plexus-utils-1.1.jar
urls[9] = file:/xxx/.m2/repository/org/codehaus/plexus/plexus-component-annotations/1.5.5/plexus-component-annotations-1.5.5.jar
urls[10] = file:/xxx/.m2/repository/org/eclipse/aether/aether-util/0.9.0.M2/aether-util-0.9.0.M2.jar
urls[11] = file:/xxx/.m2/repository/org/aspectj/aspectjtools/1.7.4/aspectjtools-1.7.4.jar
urls[12] = file:/xxx/.m2/repository/org/hibernate/hibernate-validator/5.1.2.Final/hibernate-validator-5.1.2.Final.jar
urls[13] = file:/xxx/.m2/repository/org/jboss/logging/jboss-logging/3.1.3.GA/jboss-logging-3.1.3.GA.jar
urls[14] = file:/xxx/.m2/repository/com/fasterxml/classmate/1.0.0/classmate-1.0.0.jar
urls[15] = file:/xxx/.m2/repository/commons-io/commons-io/2.4/commons-io-2.4.jar
urls[16] = file:/xxx/.m2/repository/org/apache/commons/commons-lang3/3.3.2/commons-lang3-3.3.2.jar
[FATAL ERROR] Container realm = plexus.core
urls[0] = file:/usr/local/apache-maven-2.2.1/lib/maven-2.2.1-uber.jar
[WARNING] Component manager not found for returned component. Ignored. component=AjcMojo(project=MavenProject: xxx@ /xxxx/pom.xml, session=org.apache.maven.execution.MavenSession@5f98de7, classesDirectory=/xxxx/target/classes, aspectDirectories=null, tempDirectory=/xxx/target/jcabi-ajc, scopes=null, container=org.codehaus.plexus.DefaultPlexusContainer@42d33bc1)
[INFO] ------------------------------------------------------------------------
[ERROR] FATAL ERROR
[INFO] ------------------------------------------------------------------------
[INFO] com/google/common/io/Files
com.google.common.io.Files
[INFO] ------------------------------------------------------------------------
[INFO] Trace
java.lang.NoClassDefFoundError: com/google/common/io/Files
at com.jcabi.maven.plugin.AjcMojo.sourceroots_aroundBody12(AjcMojo.java:360)
at com.jcabi.maven.plugin.AjcMojo$AjcClosure13.run(AjcMojo.java:1)
at org.aspectj.runtime.reflect.JoinPointImpl.proceed(JoinPointImpl.java:149)
at com.jcabi.aspects.aj.MethodCacher$Tunnel.through(MethodCacher.java:330)
at com.jcabi.aspects.aj.MethodCacher.cache(MethodCacher.java:130)
at com.jcabi.maven.plugin.AjcMojo.sourceroots(AjcMojo.java:358)
at com.jcabi.maven.plugin.AjcMojo.execute_aroundBody2(AjcMojo.java:173)
at com.jcabi.maven.plugin.AjcMojo$AjcClosure3.run(AjcMojo.java:1)
at org.aspectj.runtime.reflect.JoinPointImpl.proceed(JoinPointImpl.java:149)
at com.jcabi.aspects.aj.MethodLogger.wrap(MethodLogger.java:200)
at com.jcabi.aspects.aj.MethodLogger.ajc$inlineAccessMethod$com_jcabi_aspects_aj_MethodLogger$com_jcabi_aspects_aj_MethodLogger$wrap(MethodLogger.java:1)
at com.jcabi.aspects.aj.MethodLogger.wrapMethod(MethodLogger.java:156)
at com.jcabi.maven.plugin.AjcMojo.execute_aroundBody4(AjcMojo.java:163)
at com.jcabi.maven.plugin.AjcMojo$AjcClosure5.run(AjcMojo.java:1)
at org.aspectj.runtime.reflect.JoinPointImpl.proceed(JoinPointImpl.java:149)
at com.jcabi.aspects.aj.MethodLogger.wrapClass(MethodLogger.java:126)
at com.jcabi.maven.plugin.AjcMojo.execute(AjcMojo.java:163)
at org.apache.maven.plugin.DefaultPluginManager.executeMojo(DefaultPluginManager.java:490)
at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoals(DefaultLifecycleExecutor.java:694)
at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalWithLifecycle(DefaultLifecycleExecutor.java:556)
at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoal(DefaultLifecycleExecutor.java:535)
at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalAndHandleFailures(DefaultLifecycleExecutor.java:387)
at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeTaskSegments(DefaultLifecycleExecutor.java:348)
at org.apache.maven.lifecycle.DefaultLifecycleExecutor.execute(DefaultLifecycleExecutor.java:180)
at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:328)
at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:138)
at org.apache.maven.cli.MavenCli.main(MavenCli.java:362)
at org.apache.maven.cli.compat.CompatibleMain.main(CompatibleMain.java:60)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.codehaus.classworlds.Launcher.launchEnhanced(Launcher.java:315)
at org.codehaus.classworlds.Launcher.launch(Launcher.java:255)
at org.codehaus.classworlds.Launcher.mainWithExitCode(Launcher.java:430)
at org.codehaus.classworlds.Launcher.main(Launcher.java:375)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at com.intellij.rt.execution.application.AppMain.main(AppMain.java:134)
Caused by: java.lang.ClassNotFoundException: com.google.common.io.Files
at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
at org.codehaus.classworlds.RealmClassLoader.loadClassDirect(RealmClassLoader.java:195)
at org.codehaus.classworlds.DefaultClassRealm.loadClass(DefaultClassRealm.java:255)
at org.codehaus.classworlds.DefaultClassRealm.loadClass(DefaultClassRealm.java:274)
at org.codehaus.classworlds.RealmClassLoader.loadClass(RealmClassLoader.java:214)
at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
... 41 more
yegor256 commented 9 years ago

What is your Maven version? Can you should the entire pom.xml?

johnisutanto commented 9 years ago

I am using maven 2.2.1. The pom is as follow

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>xxx</groupId>
    <artifactId>xxxx</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>xxxx</name> 
    <dependencies>
        <dependency> 
            <groupId>xxxx</groupId>
            <artifactId>xxxxx</artifactId>
            <version>0.0.1-SNAPSHOT</version>
        </dependency>
        <!--<dependency>
            <groupId>com.google.inject</groupId>
            <artifactId>guice</artifactId>
            <version>3.0</version>
        </dependency>-->
        <dependency>
            <groupId>xxxx</groupId>
            <artifactId>xxxx</artifactId>
            <version>1.1.2</version>
        </dependency>
        <dependency>
            <groupId>org.codehaus.groovy</groupId>
            <artifactId>groovy-all</artifactId>
            <version>2.2.2</version>
        </dependency>
        <dependency>
            <groupId>org.gebish</groupId>
            <artifactId>geb-core</artifactId>
            <version>0.9.0</version>
        </dependency>
        <dependency>
            <groupId>org.seleniumhq.selenium</groupId>
            <artifactId>selenium-firefox-driver</artifactId>
            <version>2.41.0</version>
        </dependency>
        <dependency>
            <groupId>org.seleniumhq.selenium</groupId>
            <artifactId>selenium-chrome-driver</artifactId>
            <version>2.41.0</version>
        </dependency>
        <dependency>
            <groupId>org.seleniumhq.selenium</groupId>
            <artifactId>selenium-support</artifactId>
            <version>2.41.0</version>
        </dependency>
        <dependency>
            <groupId>org.seleniumhq.selenium</groupId>
            <artifactId>selenium-htmlunit-driver</artifactId>
            <version>2.41.0</version>
        </dependency>
        <dependency>
            <groupId>com.jcabi</groupId>
            <artifactId>jcabi-aspects</artifactId>
            <version>0.20</version>
        </dependency>
        <dependency>
            <groupId>org.aspectj</groupId>
            <artifactId>aspectjrt</artifactId>
            <version>1.6.12</version>
            <scope>runtime</scope>
        </dependency>
        <dependency>
            <groupId>com.google.guava</groupId>
            <artifactId>guava</artifactId>
            <version>17.0</version>
        </dependency>
        <dependency>
            <groupId>org.codehaus.plexus</groupId>
            <artifactId>plexus-utils</artifactId>
            <version>2.0.6</version>
        </dependency>
    </dependencies>

    <repositories>
        <repository>
            <id>xxxxx</id>
            <name>xxxxx</name>
            <url>xxxxx</url>
            <layout>default</layout>
            <snapshots>
                <enabled>true</enabled>
            </snapshots>
            <releases>
                <enabled>true</enabled>
            </releases>
        </repository>
        <repository>
            <id>yyyyy</id>
            <name>yyyy</name>
            <url>yyyyyy</url>
            <layout>default</layout>
            <snapshots>
                <enabled>true</enabled>
            </snapshots>
            <releases>
                <enabled>true</enabled>
            </releases>
        </repository>
    </repositories>
    <dependencyManagement>
        <dependencies>
        </dependencies>
    </dependencyManagement>

    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <configuration>
                    <encoding>utf-8</encoding>
                    <source>1.5</source>
                    <target>1.5</target>
                </configuration>
            </plugin>
            <plugin>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.1</version>
                <configuration>
                    <compilerId>groovy-eclipse-compiler</compilerId>
                </configuration>
                <dependencies>
                    <dependency>
                        <groupId>org.codehaus.groovy</groupId>
                        <artifactId>groovy-eclipse-compiler</artifactId>
                        <version>2.7.0-01</version>
                    </dependency>
                    <dependency>
                        <groupId>org.codehaus.groovy</groupId>
                        <artifactId>groovy-eclipse-batch</artifactId>
                        <version>2.1.8-01</version>
                    </dependency>
                </dependencies>
            </plugin>
            <plugin>
                <groupId>com.jcabi</groupId>
                <artifactId>jcabi-maven-plugin</artifactId>
                <version>0.9.4</version>
                <executions>
                    <execution>
                        <goals>
                            <goal>ajc</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
        </plugins>
        <resources>
            <resource>
                <directory>src/main/resources</directory>
            </resource>
            <resource>
                <directory>src/main/java</directory>
            <!--    <excludes>
                    <exclude>**/*.java</exclude>
                </excludes> -->
            </resource>
        </resources>
    </build>

</project>
yegor256 commented 9 years ago

Please, upgrade Maven to 3.2 and try again. Version 2.2 is very very old.

diwakartimilsina commented 9 years ago

I am facing the same issue. We are not able to upgrade to Maven 3 for our project anytime soon. Could you please fix this issue for Maven 2? Would appreciate it very much.