Gradle多模块开发框架搭建(Springboot)

2 篇文章 0 订阅
1 篇文章 0 订阅

搭建过程

搭建环境:IDEA 2202.3.2
项目框架:Springboot3.0.2
项目名称:Muhammad
项目结构:Muh-app(子模块:项目启动入口,调取Muh-Design模块资源)、Muh-Design(子模块,设计模块)

1.原始状态

使用Spring Initializer创建项目,构建工具选择Gradle

项目创建成功后,目录结构为:
xxxxx
  |— .gradle
  |— .idea
  |— gradle
    |— wrapper:Gradle命令的包装,能够让机器在不安装Gradle的情况下运行程序,便于团队开发过程中统一Gradle构建版本
  |— src
  |— .gitignore
  |— build.gradle:管理依赖包的配置文件(相当于Maven的pom.xml)
  |— gradlew:Gradle命令的包装(Linux版),当机器上没有Gradle时,可以使用gradlew命令构建项目
  |— gradlew.bat:Gradle命令的包装(Windows版),当机器上没有Gradle时,可以使用gradlew命令构建项目
  |— HELP.md
  |— settings.gradle:可以视为多模块项目总目录,Gradle通过该配置构建各模块,并组织模块间的关系

2.构建完成后,删除多余目录

删除src目录(父级项目不提供代码运行,仅用于模块管理)

3.创建子模块

  1. 创建子模块Muh-app:项目启动模块(统一入口)
  2. 创建子模块Muh-design:知识库-设计相关
  3. 删除两个子模块的多余文件和文件夹:.gitignoreHELP.mdsettings.gradle
  4. 两个模块构建完成后,清空两个模块中build.gradle配置文件的所有配置信息(子模块的相关配置以后可以在根项目的build.gradle配置文件中统一管理)
  5. 删除子模块Muh-design的启动类src/main/java/com/xfather/muhdesign/MuhDesignApplication.java和测试启动类src/test/java/com/xfather/muhdesign/MuhDesignApplicationTests.java

4.修改根项目的build.gradle文件

  1. 添加全局配置allprojects

    allprojects {
       // 将以下内容移动到allprojects配置中
        group = 'com.xfather'
        version = '0.0.1-SNAPSHOT'
        sourceCompatibility = '17'
        targetCompatibility = '17'
    
       // 将plugins中的所有插件引入到全局配置中(根据默认初始化的plugins逐一添加)
        apply plugin:'java'
        apply plugin: 'org.springframework.boot'
        apply plugin: 'io.spring.dependency-management'
    
        repositories {
            mavenCentral()
        }
    }
    
  2. 添加子模块配置subprojects

    // 适用于子模块配置
    subprojects {
       dependencies {
          implementation 'org.springframework.boot:spring-boot-starter'
          developmentOnly 'org.springframework.boot:spring-boot-devtools'
          testImplementation 'org.springframework.boot:spring-boot-starter-test'
       }
    }
    
  3. 添加特定模块配置(各子模块个性化配置在这里添加)

    // 特定项目配置
    project(':Muh-app'){
       dependencies {
          // Muh-app项目是Web应用启动入口,需要引入spring-boot-starter-web
          implementation 'org.springframework.boot:spring-boot-starter-web'
          // 添加项目依赖(给Muh-app项目引入Muh-design项目依赖)
          implementation project(':Muh-design')
       }
    }
    
    // 特定项目配置
    project(':Muh-design'){
    
    }
    
  4. 删除多余的task.name('test')配置

  5. 附:完整build.gradle文件配置

    // 插件管理
    plugins {
        id 'java'
        // springboot插件依赖
        id 'org.springframework.boot' version '3.0.2'
        // 版本管理插件依赖
        id 'io.spring.dependency-management' version '1.1.0'
    }
    
    // 全局配置管理(适用于所有模块【含子模块】)
    allprojects {
        group = 'com.xfather'
        version = '0.0.1-SNAPSHOT'
        sourceCompatibility = '17'
        targetCompatibility = '17'
    
        apply plugin:'java'
        apply plugin: 'org.springframework.boot'
        apply plugin: 'io.spring.dependency-management'
    
        repositories {
            mavenCentral()
        }
    }
    
    // 适用于子模块配置
    subprojects {
        dependencies {
            implementation 'org.springframework.boot:spring-boot-starter'
            developmentOnly 'org.springframework.boot:spring-boot-devtools'
            testImplementation 'org.springframework.boot:spring-boot-starter-test'
        }
    }
    
    // 特定项目配置
    project(':Muh-app'){
        dependencies {
            implementation 'org.springframework.boot:spring-boot-starter-web'
            // 添加项目依赖(声明对Muh-design模块的依赖)
            implementation project(':Muh-design')
        }
    }
    
    // 特定项目配置
    project(':Muh-design'){
    
    }
    

5.修改根项目的settings.gradle配置文件

引入项目引用,增加以下配置

// 此处要按照加载顺序依次配置
include('Muh-design','Muh-app')

6.在Muh-design模块中创建测试服务

  1. 创建com.xfather.muhdesign.service.TestService
  2. 添加测试服务
    public String hello(){
         return "Hello,I'm Muh-design";
    }
    
  3. TestService增加@Service注解

7.在Muh-app模块中创建测试控制

  1. 创建com.xfather.muhapp.controller.TestController
  2. 添加测试调用
    TestService service;
    
    TestController(TestService service){
      this.service = service;
    }
    
    @GetMapping("hello")
    public String hello(){
      return service.hello();
    }
    
  3. TestController增加@RestController注解

8.修改Springboot包扫描

因为Springboot无法自动识别其他模块下的类,因此需要手动处理,有三种方法:

  1. 第一种:使用@Import导入对应的类
    如:在controller中增加@Import(TestService.class)
  2. 第二种:在@SpringBootApplication上增加scanBasePackageClasses设定
    即:@SpringBootApplication(scanBasePackageClasses = {TestService.class})
  3. 第三种:在@SpringBootApplication上增加scanBasePackage设定
    即:@SpringBootApplication(scanBasePackages = "com.xfather")

9.启动测试

启动MuhAppApplication,访问 http://127.0.0.1:8080/hello 即可看到运行结果

常见问题

  1. Task ‘prepareKotlinBuildScriptModel’ not found in project:
    问题原因:Gradle的某些版本中可能存在该问题,怀疑与Kotlin插件有关
    解决办法一:在build.gradle文件中增加一个空的task来掩盖这个问题

    task prepareKotlinBuildScriptModel {}
    

    tasks.register("prepareKotlinBuildScriptModel"){}
    

    解决办法二:禁用IDEA的Kotlin插件

    文件 ——> 设置 ——> 插件 ——> 已安装 ——> 禁用Kotlin
    
  2. 无法自动装配,未找到"XXX"类型的Bean
    问题原因:因为Springboot无法自动识别其他模块下的类,因此需要手动处理,有三种方法:
    解决方法一:在对应controller上使用@Import导入对应的类

    如:在controller中增加`@Import(TestService.class)`
    

    解决方法二:在@SpringBootApplication上增加scanBasePackageClasses设定

    即:`@SpringBootApplication(scanBasePackageClasses = {TestService.class})`
    

    解决方法三:在@SpringBootApplication上增加scanBasePackage设定

    即:`@SpringBootApplication(scanBasePackages = "com.xfather")` 
    
  3. Gradle如何打包和测试
    测试:
    在IDEA右侧Gradle面板中打开待测试项目,依次分别为:Tasks ——> verification ——> test即可进行测试
    打包:
    在IDEA右侧Gradle面板中打开待打包项目,依次分别为:Tasks ——> build ——> bootJar即可进行打包,打包完成后会生成到该项目build/libs目录下

  4. 提交git报错:does not have a commit checked out
    问题原因:子模块创建时,同时创建了.git隐藏文件夹,导致子模块被识别为独立管理的版本
    解决办法:删除子模块下.git文件夹重新提交即可

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
### 回答1: 可以使用以下步骤快速搭建Spring Boot框架: 1. 安装JDK和Maven。Spring Boot需要运行在Java环境之上,所以需要先安装JDK。Maven是一个项目构建工具,可以帮助我们管理项目依赖和构建项目。 2. 创建Maven项目。在命令行中进入到你想要创建项目的目录,然后输入以下命令: ``` mvn archetype:generate -DgroupId=com.example -DartifactId=my-project -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false ``` 3. 添加Spring Boot依赖。打开项目的pom.xml文件,并添加以下内容: ``` <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> </dependencies> ``` 4. 创建启动类。在项目的根目录下创建一个名为`Application.java`的文件,并添加以下内容: ``` @SpringBootApplication public class Application { public static void main(String[] args) { SpringApplication.run(Application.class, args); } } ``` 5. 运行项目。在命令行中进入到项目根目录,然后输入以下命令: ``` mvn spring-boot:run ``` 这样就可以在浏览器中访问`http://localhost:8080`来查看项目了。 ### 回答2: 搭建SpringBoot框架是一个简单而快速的过程,可以按照以下步骤进行操作: 1. 环境准备:首先,确保你的电脑上安装了Java开发环境(JDK)和Maven(用于构建项目和管理依赖)。确保Maven已正确配置,可以在命令行中运行`mvn -version`命令来验证。 2. 创建项目:使用Spring Initializr(Spring官方提供的快速初始化项目的工具)创建一个新的SpringBoot项目。可以在https://start.spring.io/上访问Spring Initializr网站,选择所需的配置,如项目的名称、Java版本、构建工具(Maven或Gradle)等。然后点击"Generate"按钮来下载项目的骨架。 3. 导入项目:下载完成后,解压项目文件并导入到你自己的Java集成开发环境(IDE)中,如IntelliJ IDEA、Eclipse等。如果使用IntelliJ IDEA,可以直接选择"File -> Open"来导入项目。 4. 添加依赖:打开项目的pom.xml文件,添加所需的依赖,如Web、JPA、MyBatis、Spring Security等。可以从Maven中央仓库中搜索并复制相应的依赖配置到pom.xml文件中。 5. 创建主程序:在项目的源代码目录下创建一个主程序(或者入口类),该类需要添加`@SpringBootApplication`注解,以告知Spring该类是SpringBoot应用程序的入口。 6. 编写业务逻辑:根据项目需求,编写相应的业务逻辑代码,如控制器(Controller)、数据访问对象(DAO)、服务层(Service)等。 7. 运行项目:完成以上步骤后,可以直接运行项目。使用IDE中提供的运行按钮或命令行中使用`mvn spring-boot:run`命令即可启动SpringBoot应用程序。 至此,你已经快速搭建了一个基本的SpringBoot框架,可以根据项目需求进一步扩展和完善。同时,SpringBoot还提供了许多特性和功能,如自动配置、热部署、安全认证等,可以根据自己的需求进行配置和使用。 ### 回答3: 快速搭建Spring Boot框架可以遵循以下步骤: 1. 确保你已经安装了Java开发环境和Maven构建工具。 2. 打开IDE(例如IntelliJ IDEA)并创建一个新的Spring Boot项目。 3. 在创建项目的过程中,选择适合你的需求的Spring Boot版本。 4. 在项目创建完成后,IDE会为你自动创建一个基本的Spring Boot项目结构。 5. 在项目的主类上添加`@SpringBootApplication`注解,这是Spring Boot应用程序的入口点。 6. 创建所需的业务类和数据访问类,并在这些类上使用相应的注解(例如`@Service`、`@RestController`、`@Repository`等)来定义它们的角色和职责。 7. 在`src/main/resources`目录下创建`application.properties`或`application.yml`文件来配置应用程序的属性和设置,例如数据库连接信息、服务器端口等。根据需要,可以添加其他配置文件。 8. 定义和实现所需的控制器和API来处理HTTP请求和响应。 9. 运行应用程序,在控制台或浏览器中查看应用程序的输出和访问结果。 10. 根据需求添加其他功能和模块,例如日志记录、安全性、缓存等。你可以使用Spring Boot提供的自动配置和集成来解决这些问题。 总结起来,快速搭建Spring Boot框架主要包括创建项目、配置属性、定义业务类和数据访问类、实现控制器和API等步骤。通过使用Spring Boot的自动配置和集成,我们可以快速地开发和部署一个基于Spring Boot的应用程序。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值