Search code examples
eclipseeclipse-plugindrools

java.lang.NoClassDefFoundError: org/eclipse/core/runtime/Plugin


I am using eclipse Kepler. Version: Kepler Service Release 1 Build id: 20130919-0819

I installed Drools plugin and created a maven project that I converted to a drools project. ( Could figure out how to create a maven enabled drools project directly )

I then create a new Drools project from the Drools menu, and choose to create sample files, rules, test classes etc. Copy those file to my maven drools project.

But when running the DroolsTest.java I get ..

java.lang.NoClassDefFoundError: org/eclipse/core/runtime/Plugin 

here is my pom.xml :

<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>com.sample</groupId>
        <artifactId>drools</artifactId>
        <version>0.0.1-SNAPSHOT</version>
        <packaging>jar</packaging>

        <name>drools</name>
        <url>http://maven.apache.org</url>

        <properties>
                <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>

        </properties>
        <dependencyManagement>
                <dependencies>
                        <dependency>
                                <groupId>org.drools</groupId>
                                <artifactId>drools-bom</artifactId>
                                <type>pom</type>
                                <version>6.0.0.Final</version>
                                <scope>import</scope>
                        </dependency>
                </dependencies>
        </dependencyManagement>

        <dependencies>
                <dependency>
                        <groupId>org.kie</groupId>
                        <artifactId>kie-api</artifactId>
                        <version>6.0.0.Final</version>
                </dependency>
                <dependency>
                        <groupId>org.drools</groupId>
                        <artifactId>drools-compiler</artifactId>
                        <scope>runtime</scope>
                        <version>6.0.0.Final</version>
                </dependency>
                <dependency>
                        <groupId>junit</groupId>
                        <artifactId>junit</artifactId>
                        <version>3.8.1</version>
                        <scope>test</scope>
                </dependency>
        </dependencies>
</project>

I added :

<dependency>
        <groupId>org.eclipse.core</groupId>
        <artifactId>org.eclipse.core.runtime</artifactId>
        <version>3.7.0</version>
    </dependency>
    <dependency>
        <groupId>org.eclipse.core</groupId>
        <artifactId>org.eclipse.core.resources</artifactId>
        <version>3.7.100</version>
    </dependency>

But now I get :

 Error creating Groovy language support:
java.lang.ClassNotFoundException: org.codehaus.jdt.groovy.integration.internal.GroovyLanguageSupport
    at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:355)

Solution

  • You need to add eclipse-core lib in your dependencies

    <dependency>
        <groupId>org.eclipse.core</groupId>
        <artifactId>org.eclipse.core.runtime</artifactId>
        <version>3.7.0</version>
    </dependency>