一、开发环境搭建
1.开发工具版本
开发工具 | 版本号 |
---|---|
IntelliJ-IDEA | 2021.x以上版本 |
Java | JDK-1.8.x |
Maven | 3.6.x以上版本 |
Mysql | 8.x |
VMware-workstation | 15.x |
CentOS | 7.x |
nacos-server- | 1.4.1 |
rabbitmq | 3.8.34 |
redis | 6.2.7 |
xxl-job-admin: | 2.3.1 |
2.虚拟机和各软件的安装
略
3.前端环境搭建
安装Visual Studio Code工具
安装nodejs v18.14.0
运行VScode,安装插件:Auto close Tag、Auto Rename Tag、ESLint、HTML CSS Support
运行 npm install -g yarn 安装yarn
安装完成,查看版本
如果在运行 yarn -v 时发现无法运行,显示如下提示信息。
则有管理员身份运行powershell,输入set-ExecutionPolicy RemoteSigned,输入y 此时,输入 get-ExecutionPolicy,重启VScode
二、项目工程搭建
1.学成在线使用 Maven 来进行项目的管理和构建。整个项目分为三大类工程:父工程、基础工程 和微服务工程
父工程:对依赖包的版本进行管理,对子工程进行聚合管理。
基础工程:继承父类工程、提供基础类库、提供工具类库。
微服务工程:分别从业务、技术方面划分模块,每个模块构建为一个微服务。
每个微服务工程依赖基础工程,间接继承父工程。
包括:内容管理服务、媒资管理服务、搜索服务、缓存服务、消息服务等
2.搭建父工程
模块名:xuecheng-plus-parent
包名:com.xuecheng
确定父工程为pom工程,在pom.xml中添加如下内容
<packaging>pom</packaging>
确定项目所依赖的包及其版本号
<properties>
<java.version>1.8</java.version>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<spring-boot.version>2.3.7.RELEASE</spring-boot.version>
<spring-cloud.version>Hoxton.SR9</spring-cloud.version>
<org.mapstruct.version>1.3.1.Final</org.mapstruct.version>
<spring-cloud-alibaba.version>2.2.6.RELEASE</spring-cloud-alibaba.version>
<org.projectlombok.version>1.18.8</org.projectlombok.version>
<javax.servlet-api.version>4.0.1</javax.servlet-api.version>
<fastjson.version>1.2.83</fastjson.version>
<druid-spring-boot-starter.version>1.2.8</druid-spring-boot-starter.version>
<mysql-connector-java.version>8.0.30</mysql-connector-java.version>
<mybatis-plus-boot-starter.version>3.4.1</mybatis-plus-boot-starter.version>
<commons-lang.version>2.6</commons-lang.version>
<minio.version>8.4.3</minio.version>
<xxl-job-core.version>2.3.1</xxl-job-core.version>
<swagger-annotations.version>1.5.20</swagger-annotations.version>
<commons-lang3.version>3.10</commons-lang3.version>
<okhttp.version>4.8.1</okhttp.version>
<swagger-spring-boot-starter.version>1.9.0.RELEASE</swagger-spring-boot-starter.version>
<elasticsearch.version>7.12.1</elasticsearch.version>
</properties>
编写dependencyManagement 来限定所依赖包的版本,注意:dependencyManagement的作用是限定其它子工程的依赖包版本号,不会直接下载jar依赖包,如果依赖包爆红,需要先把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>
<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>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-alibaba-dependencies</artifactId>
<version>${spring-cloud-alibaba.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<!-- lombok,简化类的构建-->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>${org.projectlombok.version}</version>
</dependency>
<!-- mapstruct 代码生成器,简化java bean之间的映射 -->
<dependency>
<groupId>org.mapstruct</groupId>
<artifactId>mapstruct-jdk8</artifactId>
<version>${org.mapstruct.version}</version>
</dependency>
<dependency>
<groupId>org.mapstruct</groupId>
<artifactId>mapstruct-processor</artifactId>
<version>${org.mapstruct.version}</version>
</dependency>
<dependency>
<groupId>io.swagger</groupId>
<artifactId>swagger-annotations</artifactId>
<version>${swagger-annotations.version}</version>
</dependency>
<!-- Servlet 容器管理 -->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>${javax.servlet-api.version}</version>
<scope>provided</scope>
</dependency>
<!-- fastjson ,json解析工具 -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>${fastjson.version}</version>
</dependency>
<!-- druid 连接池管理 -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid-spring-boot-starter</artifactId>
<version>${druid-spring-boot-starter.version}</version>
</dependency>
<!-- mySQL数据库驱动包管理 -->