在Eclipse中为另一个Maven项目导入Maven项目jar

时间:2019-01-25 19:31:32

标签: java mysql eclipse maven jar

这是我第一次使用Maven。

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

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

当我使用某些旧类将NewProject项目中的oldProject.jar导入到新Maven项目中时,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文件夹),并手动将其包含在构建路径中,但是我遇到了同样的问题。

1 个答案:

答案 0 :(得分:0)

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

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

您需要将旧项目添加为新项目依赖项

在新项目pom中:

CREATE TABLE `t_plan` (
  `id` int(11) NOT NULL,
  `name` varchar(255) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;



CREATE TABLE `t_plan_x_currency` (
  `plan_id`             bigint(20)   NOT NULL ,
  `currency_symbol`     varchar(20) NOT NULL DEFAULT 'EUR',
  `price` decimal(12,6) NOT NULL DEFAULT '0',
  PRIMARY KEY (`plan_id`,`currency_symbol`),
  CONSTRAINT `t_plan_x_currency_ibfk_1` FOREIGN KEY (`plan_id`) REFERENCES `t_plan` (`id`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=latin1

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