【问题标题】:How do I add maven dependency to plug in application in Eclipse?如何在 Eclipse 中添加 Maven 依赖项以插入应用程序?
【发布时间】:2015-10-22 05:47:09
【问题描述】:

我使用 Hello RCP 框架创建了一个使用 RCP 框架的示例插件应用程序。然后,我在“配置”选项中将项目转换为 Maven 项目。我需要一个 mysql 连接器来执行一些数据库操作;为此,我在 pom.xml 文件中添加了依赖项。

构建应用程序后,它能够创建 maven 依赖文件夹并放置所需的 mysql jar。但是,当我运行该应用程序时,它说它无法找到 Driver 类。 Maven Dependency 文件夹中的 jar 文件没有错误。如果我手动将它放在构建路径中,它可以正常工作。

每当我创建一个示例 JAVA 应用程序并将其转换为 maven 项目并添加这些依赖项时,它都可以正常工作。仅适用于插件项目,它无法找到所需的 jar。

下面是我的 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>

//错误信息

连接类1内部:

java.lang.ClassNotFoundException: com.mysql.jdbc.Driver 错误:无法加载驱动程序类! 在 org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:513) 在 org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:429) 在 org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:417) 在 org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.loadClass(DefaultClassLoader.java:107) 在 java.lang.ClassLoader.loadClass(ClassLoader.java:358) 在 java.lang.Class.forName0(本机方法) 在 java.lang.Class.forName(Class.java:190) 在 com.sample.plugin.DButil.getConnection(DButil.java:25) 在 com.sample.plugin.Application.start(Application.java:20) 在 org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196) 在 org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:110) 在 org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:79) 在 org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:344) 在 org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:179) 在 sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 在 sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) 在 sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 在 java.lang.reflect.Method.invoke(Method.java:606) 在 org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:622) 在 org.eclipse.equinox.launcher.Main.basicRun(Main.java:577) 在 org.eclipse.equinox.launcher.Main.run(Main.java:1410) 在 org.eclipse.equinox.launcher.Main.main(Main.java:1386) 拿起_JAVA_OPTIONS:-Xmx512M

【问题讨论】:

  • 您能否将所发生错误的全文添加到您的帖子中?这也有助于查看您尝试在代码中的何处使用此依赖项。
  • 请发表您的错误
  • 我已经添加了错误信息,您现在可以检查一下吗?
  • 只有在构建jar时才会出现这种情况,在构建jar之前不会出现这种情况?
  • 我现在可以解决错误了。我需要通过将 JAR 文件制作为 OSGi 包来添加它。下面的链接很有用davidngos.blogspot.in/2013/10/…

标签: java eclipse maven plugins eclipse-rcp


【解决方案1】:
  1. 如果尚未下载 mySQL jdbc 驱动程序,请下载
  2. 将此添加到本地存储库(由于许可问题,您必须下载,不能从 Maven 公共存储库下载)
  3. 确保将依赖项标记为运行时,因为我们在编译期间不需要驱动程序 jar。 Javac 编译为 JDBC API 接口。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-01-20
    • 2012-11-28
    • 2018-10-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-02-13
    • 2020-01-30
    相关资源
    最近更新 更多