Srikant Barik
Srikant Barik

Reputation: 153

How do I add maven dependency to plug in application in Eclipse?

I have created a sample plugin application using RCP framework using Hello RCP framework. Then, I converted the project into Maven project in "configure" option. I need a mysql connector to perform some db operation; for that I have added the dependencies in the pom.xml file.

After building the application, it's able to create the maven dependency folder and put the required mysql jars. However, when I run the application it says its not able to find the Driver class. There is no error in the jar file which is there in Maven Dependency folder. If I manually put it in the build path its working fine.

Whenever I create a sample JAVA application and convert it into maven project and add these dependencies its working fine. Only for plug in project its not able to locate the jars required.

Below is the content of 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.plugin</groupId>
  <artifactId>com.sample.plugin</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <packaging>maven-plugin</packaging>

  <dependencies>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.4</version>
        </dependency>

        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>5.1.18</version>
            <scope>Compile</scope>
        </dependency>

  </dependencies>
  <build>
        <sourceDirectory>src</sourceDirectory>
        <plugins>
            <plugin>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.1</version>
                <configuration>
                    <source>1.7</source>
                    <target>1.7</target>
                </configuration>
            </plugin>
        </plugins>
    </build>

</project>

//Error message

Inside the connection class1:

java.lang.ClassNotFoundException: com.mysql.jdbc.Driver Error: unable to load driver class! at org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:513) at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:429) at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:417) at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.loadClass(DefaultClassLoader.java:107) at java.lang.ClassLoader.loadClass(ClassLoader.java:358) at java.lang.Class.forName0(Native Method) at java.lang.Class.forName(Class.java:190) at com.sample.plugin.DButil.getConnection(DButil.java:25) at com.sample.plugin.Application.start(Application.java:20) at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196) at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:110) at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:79) at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:344) at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:179) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:606) at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:622) at org.eclipse.equinox.launcher.Main.basicRun(Main.java:577) at org.eclipse.equinox.launcher.Main.run(Main.java:1410) at org.eclipse.equinox.launcher.Main.main(Main.java:1386) Picked up _JAVA_OPTIONS: -Xmx512M

Upvotes: 2

Views: 1070

Answers (1)

Nagesh Lakinepally
Nagesh Lakinepally

Reputation: 66

  1. Download mySQL jdbc driver, if not already done
  2. Add this to your local repository (Due to licensing issues, you must download, you cannot download it from Maven public repository)
  3. Make sure you mark the dependency as runtime, since we do not require driver jar during compile. Javac compiles to the JDBC API interfaces.

Upvotes: 0

Related Questions