当前位置: 首页 > news >正文

java一个脚手架搭建

一、准备工作:

我的IDE:IntelliJ IDEA 2021.1.3 x64

jdk17.0.9直通车:Java 存档下载 - Java SE 17.0.12 及更早版本

如果你觉得不想要每个项目每个项目需要比如jdk版本来重复下载删除、下载删除,建议使用Jvms

练手的项目jdk都不同??一个jvms帮你搞定一切!-CSDN博客

该项目搭建的脚手架会更多以一个租房系统的蓝图进行搭建(RentingScaffolding)

同时技术框架会以SpringBoot为基础、会向微服务发展

二、项目搭建(以图为主)

①:Maven项目-jdk版本为17.0.9

②:该项目叫做:RentingScaffolding,随后不要src这个文件夹

③: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>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>3.3.3</version></parent><groupId>org.example</groupId><artifactId>RentingScaffolding</artifactId><version>1.0-SNAPSHOT</version><properties><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><project.reporting.outputEncoding>UTF8</project.reporting.outputEncoding><java.version>17</java.version><maven.compiler.source>17</maven.compiler.source><maven.compiler.target>17</maven.compiler.target><!--依赖版本--><spring-boot.version>3.3.3</spring-boot.version><spring-cloud-alibaba.version>2023.0.1.2</spring-cloud-alibaba.version><spring-cloud.version>2023.0.3</spring-cloud.version><redisson.version>3.29.0</redisson.version><mybatis-plus.version>3.5.7</mybatis-plus.version><commons-collections4.version>4.4</commons-collections4.version><aliyun.oss.version>3.17.4</aliyun.oss.version></properties><dependencyManagement><dependencies><!-- SpringCloud Alibaba 微服务 --><dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-alibaba-dependencies</artifactId><version>${spring-cloud-alibaba.version}</version><type>pom</type><scope>import</scope></dependency><!-- SpringCloud 微服务 --><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-dependencies</artifactId><version>${spring-cloud.version}</version><type>pom</type><scope>import</scope></dependency><!-- SpringBoot 依赖配置 --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-dependencies</artifactId><version>${spring-boot.version}</version><type>pom</type><scope>import</scope></dependency><dependency><groupId>org.apache.commons</groupId><artifactId>commons-collections4</artifactId><version>${commons-collections4.version}</version></dependency><!-- 阿⾥云OSS--><dependency><groupId>com.aliyun.oss</groupId><artifactId>aliyun-sdk-oss</artifactId><version>${aliyun.oss.version}</version></dependency><dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-spring-boot3-starter</artifactId><version>${mybatis-plus.version}</version></dependency><dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-spring-boot3-starter</artifactId><version>${mybatis-plus.version}</version></dependency><dependency><groupId>org.redisson</groupId><artifactId>redisson-spring-boot-starter</artifactId><version>${redisson.version}</version></dependency></dependencies></dependencyManagement><build><pluginManagement><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-deploy-plugin</artifactId><configuration><skip>true</skip></configuration></plugin><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-install-plugin</artifactId><configuration><skip>true</skip></configuration></plugin></plugins></pluginManagement></build>
</project>

④:新开发,对java学习不够深入的同学要注意合理的进行copy,不要直接照搬,别把我的项目名也copy进去了,同时按道理来说我上面写的依赖是不会报错的,Reload的时候也需要多等会、依赖挺多的,总的来说我们后面的用到的一些技术栈会有这些:

- Spring Boot 3.3.3        - Spring Cloud 2023.0.3        - Spring Cloud Alibaba 2023.0.1.2

- MyBatis Plus(用于数据访问)        - Redisson(用于分布式缓存和锁)                              - 阿里云OSS(用于对象存储)        - Apache Commons Collections4(集合工具

 同时我们需要对这个父pom文件有一个概念

1. 继承机制
  • ⼦模块⾃动继承⽗ POM 的所有配置(除⾮⼦模块显式覆盖)

  • 示例:<parent> 标签定义了继承关系,⼦模块直接获得 Spring Boot 基础配置

2. 统⼀属性管理
  • 通过 <properties> 集中定义全局变量(如版本号、编码格式)

<spring-boot.version>3.3.3</spring-boot.version>  
<java.version>17</java.version>  
  • ⼦模块通过 ${变量名} 引⽤(如 ${spring-boot.version}

  • 优势:修改版本号只需在⽗ POM 调整⼀次,避免多模块重复维护

3. 多模块聚合
  • ⽗ POM 通过 <modules> 声明所有⼦模块:

<modules>  <module>module1</module>  <module>module2</module>  
</modules>  
  • 构建机制:在⽗⼯程⽬录执⾏ mvn install 时,按顺序构建所有⼦模块

4. 依赖版本管理
  • 通过 <dependencyManagement> 统⼀管理依赖版本

<dependencyManagement>  <dependencies>  <dependency>  <groupId>org.springframework.cloud</groupId>  <artifactId>spring-cloud-dependencies</artifactId>  <version>${spring-cloud.version}</version>  <type>pom</type>  <scope>import</scope>  </dependency>  </dependencies>  
</dependencyManagement>  
  • ⼦模块使⽤规则

    • 只需声明 groupId 和 artifactId不写版本号

    • 示例:⼦模块添加 Redisson 依赖时只需:

    <dependency>  <groupId>org.redisson</groupId>  <artifactId>redisson-spring-boot-starter</artifactId> <!-- 版本由⽗ POM 控制 -->  
    </dependency> 
  • 关键优势

    • 避免多模块间依赖版本冲突

    • ⽗ POM 仅管理版本,不实际引⼊依赖(⼦模块需显式声明)

5. 插件配置管理
  • 通过 <pluginManagement> 统⼀管理插件

<build>  <pluginManagement>  <plugins>  <plugin>  <groupId>org.springframework.boot</groupId>  <artifactId>spring-boot-maven-plugin</artifactId>  </plugin>  </plugins>  </pluginManagement>  
</build>  
  • ⼦模块规则

    • ⾃动继承插件配置(如 Spring Boot 打包插件)

    • 可覆盖⽗ POM 的配置(按需定制)


⽗ POM 的核⼼价值

功能作⽤关键技术标签
继承机制减少⼦模块冗余配置<parent>
统⼀属性集中管理版本/编码等变量,⼀键修改<properties>
多模块聚合批量构建所有⼦模块<modules>
依赖版本管理解决多模块依赖冲突,版本⾃动同步<dependencyManagement>
插件配置管理统⼀编译/打包⾏为,保证构建⼀致性<pluginManagement>

到这里一个简单的雏形工作就已经大概完成了。
代码仓库如下:

RentingScaffolding: 一个脚手架适用于拓展一个租房系统、适用于微服务技术栈深入开发

http://www.dtcms.com/a/308326.html

相关文章:

  • 常用设计模式系列(十六)—策略模式
  • sqli-labs靶场Less23
  • Jmeter全局变量跨线程组的使用
  • 四、主辅源电路
  • F12 开发者工具 使用指北
  • vk框架或者普通函数封装的一些函数可以拿取使用【会持续更新】
  • 谷歌devtools检查文本资源是否已压缩
  • 【LeetCode 热题 100】20. 有效的括号
  • 使用 Docker 部署 Apache RocketMQ
  • 数据转换能干什么?有哪些好用的数据转换方法?
  • 剖析客户服务痛点,借助 Baklib 整合多渠道反馈
  • ADW300 物联网仪表:引领能源计量智能化变革
  • STM32标准库搭建示例(STM32F103C8T6)
  • 操作系统:上下文切换(Context Switch)
  • Effective C++ 条款13:以对象管理资源
  • LLC电源原边MOS管DS增加RC吸收对ZVS的影响分析
  • Linux和shell
  • 保姆级别IDEA关联数据库方式、在IDEA中进行数据库的可视化操作(包含图解过程)
  • ceph sc 设置文件系统格式化参数
  • 前端ESLint扩展的用法详解
  • 【实时Linux实战系列】实时图像处理应用开发
  • 【PHP类的基础概念:从零开始学面向对象】
  • Elasticsearch DSL 核心语法大全:match、bool、range、聚合查询实战解析
  • 使用神经网络与5折交叉验证进行基因组预测:基础知识指南
  • Java【代码 21】将word、excel文件转换为pdf格式和将pdf文档转换为image格式工具类分享(Gitee源码)aspose转换中文乱码问题处理
  • 智谱 AI 重磅发布 GLM-4.5:开源 SOTA,专为下一代智能体应用打造
  • 微服务架构技巧篇——接口类设计技巧
  • review|
  • Day15--二叉树--222. 完全二叉树的节点个数,110. 平衡二叉树,257. 二叉树的所有路径,404. 左叶子之和
  • 企业级部署 (基于tomcat与nginx)