这是我第一次使用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文件夹),并手动将其包含在构建路径中,但是我遇到了同样的问题。
答案 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等旧项目中的类和依赖项