当前位置: 首页 > 知识库问答 >
问题:

具有Spring-Boot-Starter-Parent的多模块Maven项目结构

左丘楷
2023-03-14

好吧,我就直接说吧。我有一个使用Spring的多模块maven项目。项目结构可概括如下:

Project Root
|--common module
|----src
|----pom.xml
|--module 1
|----src
|----pom.xml
|--module 2
|----src
|----pom.xml
|-pom.xml

在本例中,根级pom文件将spring-boot-starter声明为父级:

<groupId>com.example.stackoverflow</groupId>
<artifactId>indania-jones</artifactId>
<version>VersionNumber</version>
<packaging>pom</packaging>

<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>1.3.2.RELEASE</version>
</parent>
<parent>
    <groupId>com.example.stackoverflow</groupId>
    <artifactId>indiana-jones</artifactId>
    <version>VersionNumber</version>
</parent>

<artifactId>module-1</artifactId>
[ERROR] Failed to execute goal org.springframework.boot:spring-boot-    maven-plugin:1.3.2.RELEASE:repackage (default) on project q-common: Execution default of goal org.springframework.boot:spring-boot-maven-plugin:1.3.2.RELEASE:repackage failed: Unable to find main class -> [Help 1]
[ERROR] 
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR] 
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/PluginExecutionException

>

  • 我可以分离出依赖项,以便模块1和模块2将spring-boot-starter-parent作为它们的父项,并从根pom中删除spring-boot-starter,从而释放common。

    我可以将根pom作为父级删除到Common。

    我可以手动构建spring-boot-starter在项目中所做的一切。

  • 共有1个答案

    申昌勋
    2023-03-14

    Spring-boot有maven build插件。如果它包含在你的POM中。移除它,然后试试。

     类似资料:
    • 我正在尝试创建一个多模块的项目,包含两个模块,核心和Web。它们都是我在Spring Initialzer上生成的Spring Boot项目。我设置了Maven POM文件,但在部署它时遇到了问题。然而,我很困惑配置是如何工作的。 核心模块将包含域对象/实体、Spring数据JPA存储库、服务,并将打包为一个JAR。Web模块将具有Spring Security、控制器和视图。它将被包装成一场战争

    • 我有以下Maven项目结构: i、 e.Project1、Project2和Project3在目录结构上是对等的,它们都是Spring Boot应用程序(JAR)。我想将Project2和Project3视为Project1的子项,而不改变目录结构。当我在父项目上执行相同的maven命令时,我需要在子项目上过渡地执行所有maven命令。而且最重要的是,我应该能够将它们打包到一个JAR文件中。我在谷

    • 我们正在多模块项目中使用spring boot。 我们有一个域访问模块,它具有公共的域对象类、存储库,以及数据源、JPA、Hibernate等配置,这些都是使用application.properties配置的。我们将所有这些配置放入公共模块中,以避免在更高级模块中重复这些公共配置。 在构建域模块时,这一切都运行良好,因此在测试单元中正确地加载了配置。 由于我们正在使用spring-boot,因此

    • 我设计了一个maven多模块项目,就像下面这个帖子的第一个答案:Multi-module maven with Spring Boot 现在我想要一个通用的maven模块,它可以包含一些供多个微服务使用的模型。如果我将这个公共项目作为第一级父pom的子项目(这样所有由引导注入的依赖项(如jpa、jackson等)都可用于公共项目),那么STS/Spring将它检测为引导应用程序,并抱怨maven

    • 所以我想构建一个具有以下结构的项目: 现在,模块1和模块2是模块3的依赖项。 问题1:这种方法是错误的吗? 问题2:当我实现这个时,项目的封装结构为父pom和模块1的pom,而模块1、模块2和模块3的子模块的封装结构为jar。现在,当我运行mvn clean install时,我得到以下错误:

    • 公用 模型 存储库 服务 网站 我们搜索了一下,没有找到一个解决方案,当项目具有这种结构时,如何制作一个可执行的jar。 下面是父pom.xml: 有人使用Spring Boot、Maven插件和Maven模块项目结构创建了可执行的fat jar吗?