基本命令
在 Spring Boot 项目根目录执行:
mvn spring-boot:run
常用选项:
# 跳过测试(开发时推荐)
mvn spring-boot:run -DskipTests
# 指定激活 profile
mvn spring-boot:run -Dspring-boot.run.profiles=dev
# 组合使用
mvn spring-boot:run -DskipTests -Dspring-boot.run.profiles=dev
启动成功标志:
Started XxxApplication in 3.421 seconds (process running for 4.012)
打包后运行(生产推荐)
mvn clean package -DskipTests
java -jar target/xxx-0.0.1-SNAPSHOT.jar
打包出的 fat jar 包含所有依赖,可在任意安装了 JRE 的机器上运行。
错误一:mvn 不是内部或外部命令
Maven 未加入 PATH,测试:
mvn -v
如果报错,检查 MAVEN_HOME 和 PATH 配置,重开终端或重启后重试。
错误二:No plugin found for prefix ‘spring-boot’
pom.xml 缺少 Spring Boot Maven 插件:
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
如果项目继承了 spring-boot-starter-parent,插件版本已由父 POM 管理,不需要指定版本号。
错误三:多模块项目 ${revision} 无法解析
多模块项目使用 ${revision} 占位符统一版本号时:
[ERROR] Could not find artifact net.xxx:parent:pom:${revision}
根因是运行命令的子模块还没安装父 POM 到本地仓库。解决方法:
从根目录先执行 install:
# 进入多模块根目录(有最顶层 pom.xml 的目录)
cd /path/to/root
# 安装所有模块到本地仓库
mvn clean install -DskipTests
安装后再进入子模块运行:
cd maku-server
mvn spring-boot:run -DskipTests
或直接在根目录指定子模块:
mvn spring-boot:run -pl maku-server -am -DskipTests
-pl 指定目标模块,-am 同时构建依赖的模块。
端口占用
# Windows
netstat -ano | findstr 8080
taskkill /PID <PID> /F
# Linux
lsof -i :8080
kill -9 <PID>
或在 application.yml 修改端口:
server:
port: 8081