文章目录
- 1.基本环境搭建
- 1.创建项目sunrays-framework
- 2.新增忽略文件
- 3.删除src目录
- 4.交给Git管理
- 2.sunrays-dependencies模块:统一管理依赖
- 1.创建模块
- 2.不要交给父模块管理,这是独立的!!!
- 3.删除src目录
- 4.pom.xml统一管理版本和通用配置
- 3.sunrays-demo模块:测试
- 1.创建模块
- 2.修改pom.xml继承sunrays-dependencies的版本和通用依赖
- 3.引入web依赖,进行测试
- 4.多环境测试
- 1.创建多环境的application.yml
- 2.application-dev.yml
- 3.application-prod.yml
- 4.application-test.yml
- 5.创建启动类 DemoApplication.java
- 6.不同环境启动
- 1.默认dev启动
- 2.切换为prod,启动
- 3.切换为test,启动
- 5.测试父模块的依赖
- 1.创建一个controller测试
- 4.sunrays-common模块:内部管理多个自定义starter
- 1.搭建环境
- 1.创建模块
- 2.查看是否被sunrays-framework模块管理
- 3.继承sunrays-dependencies模块,但是却由sunrays-framework进行配置管理,实现依赖和配置管理分离
- 4.删除src目录
- 5.封装common-web-starter
- 1.创建模块
- 2.查看是否交给sunrays-common管理
- 3.创建自动配置文件(暂时不写东西)
- 4.引入web相关依赖
- 5.sunrays-demo 直接引入common-web-starter模块即可
- 6.测试启动sunrays-demo
- 6.修改sunrays-demo内部结构
- 1.创建common-web-starter-demo子模块
- 2.继承sunrays-demo模块
- 3.修改sunrays-demo的pom 只是统一管理子模块
- 4.common-web-starter-demo代替原有的sunrays-demo
- 5.common-web-starter-demo的pom
- 6.启动测试
- 7.集成打包配置
- 8.测试打包
- 6.项目架构介绍
- 1.概览
- 2.各个模块功能介绍
- 1.sunrays-framework
- 2.sunrays-dependencies
- 3.sunrays-common
- 4.sunrays-demo
1.基本环境搭建
1.创建项目sunrays-framework
2.新增忽略文件
选择,Java,Maven,macOS,JetBrains
3.删除src目录
4.交给Git管理
2.sunrays-dependencies模块:统一管理依赖
1.创建模块
2.不要交给父模块管理,这是独立的!!!
3.删除src目录
4.pom.xml统一管理版本和通用配置
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><!-- 这个模块是独立的,不受sunrays-framework管理 --><modelVersion>4.0.0</modelVersion><groupId>com.sunxiansheng</groupId><artifactId>sunrays-dependencies</artifactId><version>1.0-SNAPSHOT</version><packaging>pom</packaging><properties><!-- 指定编译版本 --><java.version>1.8</java.version><maven.compiler.source>8</maven.compiler.source><maven.compiler.target>8</maven.compiler.target><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding><!-- 指定版本号 --><spring-boot.version>2.4.2</spring-boot.version><lombok.version>1.18.16</lombok.version><hutool.version>5.8.12</hutool.version></properties><!-- 统一指定版本 --><dependencyManagement><!-- springboot --><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-dependencies</artifactId><version>${spring-boot.version}</version><!-- 下面两个配置表示导入spring-boot-dependencies的dependencyManagement的版本 --><type>pom</type><scope>import</scope></dependency></dependencies></dependencyManagement><!--指定通用依赖--><dependencies><!-- lombok --><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><version>${lombok.version}</version></dependency><dependency><groupId>cn.hutool</groupId><artifactId>hutool-all</artifactId><version>${hutool.version}</version></dependency></dependencies><!-- 阿里云仓库,在父模块中配置仓库,可以使得所有子模块自动继承这个配置,这样在多模块项目中,每个模块无需单独配置仓库信息,便于管理和维护。 --><repositories><repository><id>central</id><name>aliyun maven</name><url>http://maven.aliyun.com/nexus/content/groups/public/</url><layout>default</layout><!-- 是否开启发布版构件下载 --><releases><enabled>true</enabled></releases><!-- 是否开启快照版构件下载 --><snapshots><enabled>true</enabled></snapshots></repository></repositories><!-- 打包通用配置 --><build><!-- maven的编译插件(配置注解处理器) --><plugins><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-compiler-plugin</artifactId><!-- maven编译插件版本号 --><version>3.8.1</version><configuration><!-- 配置注解处理器(比如Lombok和MapStruct) --><annotationProcessorPaths></annotationProcessorPaths></configuration></plugin></plugins><resources><!-- 配置资源文件,这里主要是指 src/main/resources 目录 --><resource><directory>src/main/resources</directory><!-- 配置了这个,则 Maven 的环境变量就可以填充到 application-xxx.yml 中(用 $ 符号取),可用于环境隔离 --><filtering>true</filtering></resource><!-- 可选:如果项目中有需要打包的 XML 文件,可以添加这部分配置 --><resource><directory>src/main/java</directory><includes><include>**/*.xml</include></includes></resource></resources><!-- 统一指定打包插件版本(与SpringBoot一致) --><pluginManagement><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId><version>${spring-boot.version}</version></plugin></plugins></pluginManagement></build><!-- maven的环境变量env-flag的值为具体的值 --><profiles><!-- 开发 --><profile><!-- id(不重复即可) --><id>dev</id><properties><env-flag>dev</env-flag></properties><!-- 默认为dev --><activation><activeByDefault>true</activeByDefault></activation></profile><!-- 测试 --><profile><id>test</id><properties><env-flag>test</env-flag></properties></profile><!-- 生产 --><profile><id>prod</id><properties><env-flag>prod</env-flag></properties></profile></profiles></project>
3.sunrays-demo模块:测试
1.创建模块
2.修改pom.xml继承sunrays-dependencies的版本和通用依赖
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><parent><groupId>com.sunxiansheng</groupId><artifactId>sunrays-dependencies</artifactId><version>1.0-SNAPSHOT</version><!-- 当要继承的模块不是目录中的当前模块的父模块时使用 --><relativePath/></parent><artifactId>sunrays-demo</artifactId></project>
3.引入web依赖,进行测试
<dependencies><!-- 引入springboot-web模块 --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency></dependencies>
4.多环境测试
1.创建多环境的application.yml
2.application-dev.yml
server:port: 8081
3.application-prod.yml
server:port: 8082
4.application-test.yml
server:port: 8083
5.创建启动类 DemoApplication.java
package com.sunxiansheng.demo;import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;/*** Description: 启动类** @Author sun* @Create 2024/10/4 22:53* @Version 1.0*/
@SpringBootApplication
public class DemoApplication {public static void main(String[] args) {SpringApplication.run(DemoApplication.class, args);}
}
6.不同环境启动
1.默认dev启动
2.切换为prod,启动
3.切换为test,启动
5.测试父模块的依赖
1.创建一个controller测试
package com.sunxiansheng.demo.controller;import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;/*** Description: 测试** @Author sun* @Create 2024/10/4 22:56* @Version 1.0*/
@RestController
public class TestController {@RequestMapping("/test")public String test() {return "test";}
}
4.sunrays-common模块:内部管理多个自定义starter
1.搭建环境
1.创建模块
2.查看是否被sunrays-framework模块管理
3.继承sunrays-dependencies模块,但是却由sunrays-framework进行配置管理,实现依赖和配置管理分离
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><parent><groupId>com.sunxiansheng</groupId><artifactId>sunrays-dependencies</artifactId><version>1.0-SNAPSHOT</version><!-- 当要继承的模块不是目录中的当前模块的父模块时使用 --><relativePath/></parent><artifactId>sunrays-common</artifactId></project>
4.删除src目录
5.封装common-web-starter
1.创建模块
2.查看是否交给sunrays-common管理
3.创建自动配置文件(暂时不写东西)
4.引入web相关依赖
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><parent><groupId>com.sunxiansheng</groupId><artifactId>sunrays-common</artifactId><version>1.0-SNAPSHOT</version></parent><artifactId>common-web-starter</artifactId><dependencies><!-- 引入springboot-web模块 --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency></dependencies></project>
5.sunrays-demo 直接引入common-web-starter模块即可
<dependencies><!-- 引入common-web-starter模块 --><dependency><groupId>com.sunxiansheng</groupId><artifactId>common-web-starter</artifactId><version>1.0-SNAPSHOT</version></dependency>
</dependencies>
6.测试启动sunrays-demo
6.修改sunrays-demo内部结构
1.创建common-web-starter-demo子模块
2.继承sunrays-demo模块
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><parent><groupId>com.sunxiansheng</groupId><artifactId>sunrays-demo</artifactId><version>1.0-SNAPSHOT</version></parent><artifactId>common-web-starter-demo</artifactId></project>
3.修改sunrays-demo的pom 只是统一管理子模块
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><parent><groupId>com.sunxiansheng</groupId><artifactId>sunrays-dependencies</artifactId><version>1.0-SNAPSHOT</version><!-- 当要继承的模块不是目录中的当前模块的父模块时使用 --><relativePath/></parent><artifactId>sunrays-demo</artifactId><!-- 统一管理子模块 --><packaging>pom</packaging><modules><module>common-web-starter-demo</module></modules></project>
4.common-web-starter-demo代替原有的sunrays-demo
5.common-web-starter-demo的pom
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><parent><groupId>com.sunxiansheng</groupId><artifactId>sunrays-demo</artifactId><version>1.0-SNAPSHOT</version></parent><artifactId>common-web-starter-demo</artifactId><dependencies><!-- 引入common-web-starter模块 --><dependency><groupId>com.sunxiansheng</groupId><artifactId>common-web-starter</artifactId><version>1.0-SNAPSHOT</version></dependency></dependencies></project>
6.启动测试
7.集成打包配置
<!-- maven 打包常规配置 --><build><!-- 打包成 jar 包时的名字为项目的parent.artifactId + artifactId + version --><finalName>${project.parent.artifactId}-${project.artifactId}-${project.version}</finalName><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId><!-- 引用父模块中统一管理的插件版本(与SpringBoot的版本一致! --><executions><execution><goals><!-- 将所有的依赖包都打到这个模块中 --><goal>repackage</goal></goals></execution></executions></plugin></plugins></build>
8.测试打包
6.项目架构介绍
1.概览
2.各个模块功能介绍
1.sunrays-framework
根模块,负责统一管理除了sunrays-dependencies之外的其他模块
2.sunrays-dependencies
统一管理依赖的模块,负责依赖版本的管理以及通用配置的管理
3.sunrays-common
公共模块,继承了sunrays-dependencies模块的版本和通用依赖,内部管理多个starter
4.sunrays-demo
demo模块,继承sunrays-dependencies模块的版本和通用依赖,内部管理多个demo