【问题标题】:Importing a Maven Project jar in Eclipse for another Maven Project在 Eclipse 中为另一个 Maven 项目导入一个 Maven 项目 jar
【发布时间】:2019-06-19 16:03:10
【问题描述】:

这是我第一次使用 Maven。

我在 Eclipse 中创建了一个新项目,它需要我以前开发的 Java 项目中的类。

我使用 Eclipse 提供的默认设置将旧的 Maven 项目导出为不可执行的 jar。旧项目的依赖项之一是 jdbc mysql 驱动程序。

当我在 New Maven Project 中导入 oldProject.jar 时,使用一些旧类,Eclipse 会引发错误。

然后我将 jdbc mysql 驱动程序添加为 Maven 依赖项,但我仍然无法启动任何东西,因为:

Exception in thread "main" java.lang.NoClassDefFoundError: 
java/sql/SQLException
at ---/dummy.dummy_class.main(dummy_class.java:8)
Caused by: java.lang.ClassNotFoundException: java.sql.SQLException
at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:583)
at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:190)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:499)

然后我尝试将 jar 从 Maven 文件夹移动到另一个(lib 文件夹)并手动将其包含在构建路径中,但我遇到了同样的问题。

【问题讨论】:

    标签: java mysql eclipse maven jar


    【解决方案1】:

    旧项目必须有一个带有如下标签的 pom

    <groupId>com.project</groupId> 
    <artifactId>old-project-name</artifactId>
    <version>1.0.0</version>
    
    <dependencies>
        ...
        <!-- mysql as dependency if you want use it in new project -->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>5.1.39</version>
        </dependency>
    ...
    

    你需要添加旧项目作为新项目的依赖

    在新项目 pom 中:

     <dependencies>
            ...
            <!-- old project -->
            <dependency>
                <groupId>com.project</groupId>
                <artifactId>old-project-name</artifactId>
                <version>1.0.0</version>
            </dependency>
           ...
    

    通过这种方式,新项目可以使用旧项目中的类和依赖项,例如 mysql

    【讨论】:

    • 尝试这样做,但可能 oldProject.jar 名称和新项目的 Maven 期望的文件名之间存在一些不一致。我知道我可能犯了一些新手错误。
    • 按照maven.apache.org/guides/mini/guide-3rd-party-jars-local.html 中的描述在 Maven 中安装了本地 .jar 和 pom.xml 文件,但没有成功
    猜你喜欢
    • 1970-01-01
    • 2020-08-30
    • 2020-12-14
    • 1970-01-01
    • 2020-10-10
    • 2014-07-10
    • 2016-10-23
    • 2014-04-09
    • 2016-11-28
    相关资源
    最近更新 更多