文章目录
- [IDEA后端打包与部署(使用 Maven)](#IDEA后端打包与部署(使用 Maven))
-
- [1. 确保 Maven 已安装,并引入 pom 插件](#1. 确保 Maven 已安装,并引入 pom 插件)
- [2. 清理并安装项目](#2. 清理并安装项目)
- [3. 定位生成的 JAR 包和配置文件](#3. 定位生成的 JAR 包和配置文件)
- [4. 创建部署文件夹](#4. 创建部署文件夹)
- [5. 上传到服务器](#5. 上传到服务器)
- [前端打包与部署(使用 npm)](#前端打包与部署(使用 npm))
-
- [1. 确保 Node.js 和 npm 已安装](#1. 确保 Node.js 和 npm 已安装)
- [2. 安装依赖](#2. 安装依赖)
- [3. 构建生产环境代码](#3. 构建生产环境代码)
- [4. 准备部署文件夹](#4. 准备部署文件夹)
- [5. 上传到服务器](#5. 上传到服务器)
- 自动化的想法
- 可能出现的异常
- 参考
IDEA后端打包与部署(使用 Maven)
1. 确保 Maven 已安装,并引入 pom 插件
1.1 如果使用私有仓库,确保在 ~/.m2/settings.xml
中配置好仓库信息和认证。
详细操作可以参考Maven中的配置文件
1.2 使用 IDEA 自带的 Maven,然后添加依赖:
xml
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
注意:希望打包出什么东西、什么形式,都可以通过添加插件进行控制。
2. 清理并安装项目
- 首先执行
clean
。 - 然后进行打包。
关于 Maven 的生命周期 ,可以参考这篇文章:Maven的生命周期。
3. 定位生成的 JAR 包和配置文件
- 生成的 JAR 包通常位于
target
目录下,例如target/your-app.jar
。 - 配置文件(如
application.properties
或application.yml
)位于src/main/resources
目录下。
4. 创建部署文件夹
- 创建一个新的文件夹用于存放要部署的文件,例如
deploy-backend
。 - 将生成的 JAR 包和配置文件复制到该文件夹中(可以增加一个
conf
配置文件夹)。
5. 上传到服务器
根据实际需求,通过 Git、SVN 等方式上传到服务器。
前端打包与部署(使用 npm)
1. 确保 Node.js 和 npm 已安装
- 检查是否已安装 Node.js 和 npm:
bash
node -v
npm -v
- 如未安装,请参考 Node.js 官方安装指南 进行安装。
2. 安装依赖
在前端项目根目录下执行:
bash
npm install
3. 构建生产环境代码
执行构建命令:
bash
npm run build:prod
这将在项目目录下生成一个 dist
文件夹,里面包含编译后的静态文件。
4. 准备部署文件夹
- 创建一个新的文件夹用于存放要部署的前端文件,例如
deploy-frontend
。 - 将
dist
文件夹中的必要文件复制到该文件夹。 - 如果有特殊的配置文件或其他需要的文件,确保也一并复制。
5. 上传到服务器
同样,根据需求上传到服务器。
自动化的想法
为了提高效率,可以编写脚本来自动化整个打包和部署过程。例如,使用 Bash 脚本。
如果大家有任何自动化相关的想法,可以一起讨论。
可能出现的异常
Maven 打包时报错 org.apache.maven.surefire:surefire-junit4:jar
maven-surefire-plugin
用于运行单元测试。在提供的配置中,<skipTests>true</skipTests>
表示在构建时跳过测试的执行,这通常用于加快构建过程。
xml
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.18.1</version>
<configuration>
<skipTests>true</skipTests>
</configuration>
</plugin>
</plugins>
</build>