Inondle
Inondle

Reputation: 362

Getting a NoClassDefFoundError when trying to install a project with maven

Trying to build an eclipse plugin. When I try to run mvn install I get this error message:

java.lang.NoClassDefFoundError: org/eclipse/xtext/common/types/DefaultCommonTypesRuntimeModule
        at java.lang.ClassLoader.defineClass1(Native Method)
        at java.lang.ClassLoader.defineClass(ClassLoader.java:800)
        at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
        at java.net.URLClassLoader.defineClass(URLClassLoader.java:449)
        at java.net.URLClassLoader.access$100(URLClassLoader.java:71)
        at java.net.URLClassLoader$1.run(URLClassLoader.java:361)
        at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:425)
        at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)

Apparently a NoClassDefFoundError means that the class isn't available at runtime. This plugin doesn't actually run xtext code but it is built using an xtext language plugin. My guess would be that there would be a problem with getting that code at runtime? I maven installed the parent plugin and even linked it's jar locally through maven and this still pops up. Ideas?

Also heres the project's pom:

<?xml version="1.0" encoding="UTF-8"?>
<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/maven-v4_0_0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>de.fu_berlin.inf.archnemesis</groupId>
    <artifactId>archnemesis-pmd-rule</artifactId>
    <version>1.0-SNAPSHOT</version>
    <packaging>jar</packaging>

    <name>Archnemesis PMD Plugin</name>
    <description>Archnemesis rule implementation for PMD</description>

    <dependencies>
        <dependency>
            <groupId>de.fu_berlin.inf.archnemesis</groupId>
            <artifactId>de.fu_berlin.inf.archnemesis</artifactId>
            <version>1.0.0-SNAPSHOT</version>
        </dependency>
        <dependency>
            <groupId>net.sourceforge.pmd</groupId>
            <artifactId>pmd</artifactId>
            <version>5.0.5</version>
        </dependency>
        <dependency>
            <groupId>de.fu_berlin.inf.archnemesis</groupId>
            <artifactId>de.fu_berlin.inf.archnemesis-core-rule</artifactId>
            <version>1.0-SNAPSHOT</version>
        </dependency>
        <dependency>
            <groupId>org.eclipse.xtend</groupId>
            <artifactId>org.eclipse.xtend.lib</artifactId>
            <version>2.8.0</version>
        </dependency>
        <dependency>
            <groupId>junit</groupId>
                <artifactId>junit</artifactId>
                <version>4.11</version>
                <scope>test</scope>
        </dependency>
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.1</version>
                <configuration>
                    <source>1.6</source>
                    <target>1.6</target>
                </configuration>
            </plugin>
        </plugins>
    </build>
</project>

Upvotes: 0

Views: 667

Answers (1)

Karthik
Karthik

Reputation: 5040

Try adding the following dependency to your pom.xml

<dependency>
    <groupId>org.eclipse.xtext</groupId>
    <artifactId>org.eclipse.xtext.common.types</artifactId>
    <version>2.8.4</version>
</dependency>

Upvotes: 1

Related Questions