【发布时间】:2018-07-24 18:19:44
【问题描述】:
我有一个使用 Spring Boot 的多级 Maven 项目。
父项目 |_ 项目1 |_pom.xml |_ 图书馆计划 |_pom.xml |_ 项目2 |_pom.xml对于 ParentProject,父级是这样定义的:
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-parent</artifactId>
<version>1.5.9.RELEASE</version>
<relativePath></relativePath>
</parent>
对于 Project1、LibraryProject 和 Project2:
<parent>
<groupId>ParentProject</groupId>
<artifactId>ParentProject</artifactId>
<version>0.0.1-SNAPSHOT</version>
<relativePath>..</relativePath>
</parent>
Project1 和 Project2 依赖于 LibraryProject 中的类。当我从 Eclipse 执行时,Project1 和 Project2 都找到了它们的所有类以及 LibraryProject 中的所有类。当我用
创建一个 Project1.jar mvn 全新安装包然后运行它,我在 LibraryProject 中的类上得到 ClassNotFoundExceptions。 LibraryProject 是 Project1 的依赖,在 Project1 之前构建。
ParentProject 使用 spring-boot-parent 作为其父项。它按以下顺序构建:
1) 图书馆项目 2) 项目1 3) 项目2我引入了 maven-compiler-plugin、maven-jar-plugin、maven-remote-resources-plugin。
我只是没有想法。它在eclipse中编译,maven可以构建它。但是运行它会产生异常。
提前谢谢大家。
【问题讨论】:
-
能否请您在所有 pom 文件中包含依赖部分和
<parent>标签部分?另外,请向我们展示 ClassNotFoundExceptions 的堆栈跟踪。 -
正如我所说,我是从未连接的计算机上输入的。我无法输入整个内容。
-
为了诊断问题,我们需要更多信息。您可以稍后在可以访问时添加信息,和平。
-
如果您有多个模块构建,则不应使用
spring-boot-parent作为根的父级...有一个文档如何做到这一点,您必须通过依赖管理和导入范围 (BOM) ...进一步clean install package是错误的并且重复部分...只有mvn clean package就足够了...进一步哪些模块是真正的弹簧启动应用程序? -
所有项目都是 Spring Boot 项目(显然),由于 jar 的结构,在另一个中使用 1 个 spring boot jar 是不可能的。
标签: java spring eclipse maven spring-boot