上一章我们重点讲了 Java 运行环境的配置,这一章我们讲解项目层面环境的配置。
企业级环境到底要配什么
一个企业级 Java 项目跑起来,依赖这条链:
Plain
JDK (写/跑 Java)
└─ Maven (管依赖 + 打包)
└─ 本地/服务器 中间件
├─ MySQL (业务数据)
├─ Redis (缓存/会话)
└─ (可选) Nginx / Docker
类比一下:
- Maven ≈ npm(管包)+ vite(管打包),二合一
- MySQL / Redis ≈ 我们项目连的数据库/缓存服务
- Docker ≈ 把上面这些"服务"打包成标准化容器,别再"我本地能跑",可以避免繁琐的本地安装
Docker 环境
安装 Docker Desktop
Windows 提示
wsl --update 的解决办法:
- 管理员身份打开 cmd
- 执行
wsl --update --web-download- Docker Desktop 里点 "try again",弹出"欢迎使用 WSL"反复弹窗直接忽略
国内镜像加速(拉镜像不超时)
Docker 下载时不需要魔法。但是在一些镜像的拉取默认时国外环境,此时需要配置镜像。
Docker 我之前写过一个非常详细的文档,可以直接参考:https://blog.csdn.net/xiugonghao/article/details/147167622 。
Docker Compose 一站式编排
企业不会一条条 docker run,而是用 docker-compose.yml 一把起所有中间件:
YAML
# docker-compose.yml
version: '3.8'
services:
mysql:
image: mysql:8.4.10
container_name: mysql84
ports: ["3306:3306"]
environment:
MYSQL_ROOT_PASSWORD: 你的密码
volumes:
- ./mysql/data:/var/lib/mysql
restart: always
redis:
image: redis
container_name: redis-latest
command: redis-server --requirepass "foobared"
ports: ["6379:6379"]
restart: always
Bash
docker compose up -d # 一条命令起 MySQL + Redis
docker compose down # 停止
Maven 环境
Maven 是什么
Maven 是 Java 的包管理器,等同于前端的 npm ,但它比 npm 更强------打包也归它管 。前端用 package.json,Maven 用 pom.xml。
pom.xml 常用标签
| 标签 | 作用 |
|---|---|
dependencyManagement |
父模块里统一定义包版本,子模块引包不用写版本号 |
dependency |
用 groupId+artifactId+version 指定包;可放 dependencies(引入依赖)或 dependencyManagement(仅管版本) |
properties |
定义变量,统一调整版本号等 |
modules |
父模块声明有哪些子模块 |
packaging |
打包方式:pom(父工程) /jar(代码包) |
build/build/plugins/plugin |
打包构建配置 / 插件 |
repositories |
依赖从哪拉(不配=官方仓库,国内慢) |
pluginRepositories |
插件的仓库 |
模块的继承
Maven 的"模块"≠ 业务模块(用户/角色)。它是工程拆分机制 :父 pom 统管版本,子模块继承。若依就是典型多模块:
Plain
RuoYi-Vue (父 pom, packaging=pom)
├── ruoyi-admin (启动模块, jar) ← 我们跑的就是它
├── ruoyi-framework (安全/拦截器/web配置)
├── ruoyi-system (业务: 实体/mapper/service)
├── ruoyi-common (工具类/常量)
├── ruoyi-generator (代码生成器)
└── ruoyi-quartz (定时任务)
父 pom.xml 用 <modules> 列出它们,<dependencyManagement> 锁死所有版本,子模块只写 <artifactId> 不写版本。
下载并配置 Maven
注:现在 IDEA 默认会内置 Maven,无需我们手动下载配置。这里提供一个下载方法仅供喜欢折腾的同学。
- 下载:https://maven.apache.org/download.cgi → 下 zip,解压到固定目录(如
D:/dev/maven)。 - **配置镜像(这里给完整
settings.xml)**:
XML
<!-- conf/settings.xml -->
<settings>
<mirrors>
<mirror>
<id>aliyun</id>
<name>aliyun maven</name>
<url>https://maven.aliyun.com/repository/public</url>
<mirrorOf>central</mirrorOf>
</mirror>
</mirrors>
</settings>
不配镜像,依赖从国外官方仓库拉,动辄超时。
- IDEA 配置自己的 Maven :设置 → 搜 Maven →
- Maven home path =
D:/dev/maven - User settings file =
D:/dev/maven/conf/settings.xml - Local repository =
D:/dev/maven/repo
- Maven home path =
- 环境变量 :
- 新建系统变量
MAVEN_HOME = D:\dev\maven - Path 追加
%MAVEN_HOME%\bin - 验证:
mvn -v显示版本即成功
- 新建系统变量
Mac
export MAVEN_HOME=...; export PATH=$MAVEN_HOME/bin:$PATH写进.zshrc。
常用 Maven 命令
Bash
mvn clean # 清 target
mvn compile # 编译
mvn package -DskipTests # 打包(跳过测试),产物在 target/*.jar
mvn install # 装到本地仓库,供其他模块依赖
mvn dependency:tree # 看依赖树,排查冲突
企业多环境配置
公司项目有开发/测试/生产三套环境,配置(库地址、密码)不能写死。Spring Boot + Maven 用 profile 解决。
Spring Boot 多环境
application.yml 里指定激活哪个:
YAML
spring:
profiles:
active: dev # dev / test / prod
再建:
application-dev.yml(本地:localhost:3306)application-test.yml(测试库)application-prod.yml(生产库,密码走环境变量)
我们改 active 就能切环境。
Maven 多环境(打包时定环境)
父 pom.xml:
XML
<profiles>
<profile>
<id>dev</id>
<properties><profileActive>dev</profileActive></properties>
<activation><activeByDefault>true</activeByDefault></activation>
</profile>
<profile>
<id>prod</id>
<properties><profileActive>prod</profileActive></properties>
</profile>
</profiles>
打包指定环境:mvn package -P prod,Maven 把 @profileActive@ 替换成 prod,打到 jar 里。
配置优先级 (高 → 低):命令行参数 > 环境变量 >
application-prod.yml>application.yml。生产密码用环境变量注入,别写进仓库。