SpringBoot + 从零创建一个多模块项目 说明 环

说明

  本文手把手演示如果利用Gradle + SpringBoot创建一个多模块项目,作为以后功能点验证、持续开发的基础。

环境信息

  1. 操作系统:win 10
  2. JDK:1..8.0-181
  3. Gradle:gradle-6.8.2
  4. IDEA:2020.1 ULTIMATE
  5. SpringBoot:2.5.6

新建项目

  1. 打开IDEA,显示如下,点击 “创建项目”
    image.png
  2. 选择以Gradle方式创建项目,指定项目的JDK版本后,点击Next进入下一步

image.png

  1. 填写项目基本信息,点击完成

image.png

Location:项目目录,选定目录后ArtifactId和Name也即确定

GroupId:分组名,一般以域名反转形式设置,如域名是<www.baidu.com>, 则此处设置为com.baidu

ArtifictId:理解为项目名

Name:同ArtifactId

  1. 如果你需要更换gradle依赖,配置如下

image.png

  1. 完整的bild.gradle设置如下
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
csharp复制代码//build.gradle配置初识:https://blog.csdn.net/lw_power/article/details/51241720
//gradle默认属性:http://www.cnblogs.com/langtianya/p/5209515.html
plugins {
  id 'java'
}

//全局使用的值
ext {
  springBootVersion = '2.5.6'
}

//该项目与全部子项目的属性
allprojects {
  //指定编译.java文件的jdk版本
  sourceCompatibility = 1.8
  //确保class文件与targetCompatibility指定版本,或者更新的java虚拟机兼容
  targetCompatibility = 1.8

  //项目所属组,中间以.(英文逗号)隔开
  group 'com.yibenzhenjing'
  //项目版本号
  version '1.0.1-SNAPSHOT'

  //应用插件
  apply plugin: 'java'
  apply plugin: 'idea'

  // java编译的时候缺省状态下会因为中文字符而失败,设置字符集
  [compileJava, compileTestJava, javadoc]*.options*.encoding = 'UTF-8'

  //仓库,国内外仓库访问、下载速度会不同
  repositories {
      mavenLocal()
      maven { url "http://maven.aliyun.com/nexus/content/groups/public" } //国内仓库,下载会快一点
  }

  //依赖,testCompile表示依赖范围是test,其他依赖写compile
  dependencies {
      compile group: 'org.springframework.boot', name: 'spring-boot-starter-web', version: '2.5.6'
  }
}

subprojects {

}

  1. 在项目中创建.gitignore文件,填写指定格式的文件
    image.png

至此,项目主模块创建完成。

创建子模块

  1. 选中项目后, File -> New -> Module 或 右击项目,选择 New -> Module

image.png

image.png

  1. 选择以Gradle方式创建模块,指定JDK版本后,进入下一步

image.png

  1. 填写模块信息,点击完成

image.png

Parent:父级,选择之前创建的core项目

Name:填写模块名

其他配置不需要填写

  1. 可以看到项目下多出了util模块,build.gradle配置清空即可
1
2
3
4
5
6
ini复制代码// 如果单独构建,产物包名称可自定义
archivesBaseName = 'core-util'

dependencies {

}
  1. 在util模块下创建类

image.png

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
typescript复制代码package com.yibenzhenjing.core.util;

/**
* 字符拼接工具
*
* @author tangjialiang
* @since 2021-10-20
**/
public class JoinUtils {
  /**
    * 分隔符:短横杠
    */
  public static final String SEPARATOR_DASH = "-";

  /**
    * 用默认连接符拼接多个字符串
    *
    * @param key 待拼接的字符串
    * @return 拼接结果
    */
  public static String joinString(String... key) {
      return joinStringWithSeprator(SEPARATOR_DASH, key);
  }

  /**
    * 指定连接符拼接多个字符串
    *
    * @param separator 连接符
    * @param key       待拼接的字符串
    * @return 拼接结果
    */
  public static String joinStringWithSeprator(String separator, String... key) {
      StringBuilder sBuiler = new StringBuilder();
      int paramSize = key.length;
      int endKeyIndex = paramSize - 1;
      for (int i = 0; i < paramSize; i++) {
          sBuiler.append(key[i]);
          if (i > 0 && i < endKeyIndex) {
              sBuiler.append(separator);
          }
      }
      return sBuiler.toString();
  }

}
  1. 将util构建为二方库

image.png

执行成功后看到如下

image.png

  1. 创建应用模块site,过程同util,build.gradle如下
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
scss复制代码buildscript {
  repositories {
      mavenLocal()
      maven { url "http://maven.aliyun.com/nexus/content/groups/public" }
  }
  dependencies {
      classpath("org.springframework.boot:spring-boot-gradle-plugin:${springBootVersion}")
  }
}
apply plugin: 'org.springframework.boot'

archivesBaseName = 'site'

dependencies {
  compile project(':util')
}
  1. 创建项目启动类
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
typescript复制代码package com.yibenzhenjing.core.site;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

/**
* 项目启动类
*
* @author tangjialiang
* @since 2021-10-27
**/
@SpringBootApplication
public class SiteApplication {
  public static void main(String[] args) {
      SpringApplication.run(SiteApplication.class, args);
  }
}
  1. site模块下创建测试类
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
kotlin复制代码package com.yibenzhenjing.core.site.controller;

import com.yibenzhenjing.core.util.JoinUtils;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

/**
* 验证项目正常启动的类
*
* @author tangjialiang
* @since 2021-10-28
**/
@RestController
public class HelloController {

  @GetMapping("hello")
  public String hello() {
      return "hello" + JoinUtils.joinString(",", "author");
  }
}

  1. 启动项目,

image.png

并在浏览器中打开 http://localhost:8080/hello ,结果如下,满足预期

image.png

至此,通过IDEA创建的 Gradle + SpringBoot的项目成功开发,如果您正在新建类似项目,希望能给您写参考。

本文转载自: 掘金

开发者博客 – 和开发相关的 这里全都有

0%