☰
第九章:本项目完整迁移
2026/10/11 19:56:36 网站建设 项目流程

这是核心章节。直接看完整的build.gradle对照pom.xml怎么写。


9.1 迁移步骤概览 (pom.xml → build.gradle)

  1. 根目录新建settings.gradle
  2. 根目录新建build.gradle(参照本章)
  3. 初始化 Gradle Wrapper
  4. 验证:.\gradlew clean build -x test

9.2 settings.gradle

rootProject.name='live'

9.3 完整 build.gradle(可直接复制使用)

// 插件(替代 pom.xml 的 <parent> + <build><plugins>)plugins{id'java'id'war'id'org.springframework.boot'version'2.0.5.RELEASE'id'io.spring.dependency-management'version'1.0.15.RELEASE'}// 项目信息group='com.own'version='1.0'sourceCompatibility='1.8'targetCompatibility='1.8'// 版本号(替代 <properties>)ext{mybatisPlusVersion='3.1.2'lombokVersion='1.18.6'}// 仓库(替代 settings.xml mirror)repositories{maven{url'https://maven.aliyun.com/repository/public'}maven{url'https://maven.aliyun.com/repository/spring'}mavenCentral()mavenLocal()}// 依赖(替代所有 <dependency>)dependencies{// Spring Boot 核心(版本由 BOM 管理,不用写版本)implementation'org.springframework.boot:spring-boot-starter-web'implementation'org.springframework.boot:spring-boot-starter-aop'implementation'org.springframework.boot:spring-boot-starter-data-rest'// Tomcat:scope=provided → providedRuntime(WAR 部署到外部容器)providedRuntime'org.springframework.boot:spring-boot-starter-tomcat'// JSP 支持implementation'javax.servlet:jstl'implementation'org.apache.tomcat.embed:tomcat-embed-jasper'// 数据库runtimeOnly'mysql:mysql-connector-java'implementation"com.baomidou:mybatis-plus-boot-starter:${mybatisPlusVersion}"implementation'org.apache.tomcat:tomcat-jdbc'implementation'com.alibaba:druid:1.1.22'implementation'org.apache.shardingsphere:sharding-jdbc-spring-boot-starter:4.1.1'// Spring 组件(版本由 BOM 管理)implementation'org.springframework:spring-jdbc'implementation'org.springframework:spring-webmvc'implementation'org.springframework:spring-context-support'// 日志implementation'org.slf4j:slf4j-api:1.7.5'// 验证码implementation'com.github.penggle:kaptcha:2.3.2'// 定时任务 Quartzimplementation'org.quartz-scheduler:quartz:2.2.3'implementation'org.quartz-scheduler:quartz-jobs'// Guava(原 pom 用了 RELEASE,改成固定版本)implementation'com.google.guava:guava:30.1.1-jre'// Redisimplementation'redis.clients:jedis:2.9.0'implementation'org.springframework.data:spring-data-redis:2.0.6.RELEASE'// Lombok:optional=true → compileOnly + annotationProcessorcompileOnly"org.projectlombok:lombok:${lombokVersion}"annotationProcessor"org.projectlombok:lombok:${lombokVersion}"testCompileOnly"org.projectlombok:lombok:${lombokVersion}"testAnnotationProcessor"org.projectlombok:lombok:${lombokVersion}"// 自定义 starterimplementation'io.github.diehao:d-finder-spring-boot-starter:2.0.0'// JUnittestImplementation'junit:junit:4.12'}// 编译编码配置tasks.withType(JavaCompile).configureEach{options.encoding='UTF-8'}// 打包bootWar{archiveFileName='live.war'}

9.4 初始化 Gradle Wrapper

在项目根目录执行(需要已安装全局 Gradle):

gradle wrapper--gradle-version 7.6.4--distribution-typebin

之后所有人都用.\gradlew,不需要安装 Gradle:

.\gradlew clean build-x test

9.5 常见坑

⚠️ 坑一:Lombok 不生效

必须两行都写,缺一不可:

compileOnly"org.projectlombok:lombok:${lombokVersion}"annotationProcessor"org.projectlombok:lombok:${lombokVersion}"

⚠️ 坑二:tomcat-embed-jasper 写错了

JSP 编译用的 jasper 必须用implementation,不能用compileOnly或providedRuntime:

// ✅ 正确implementation'org.apache.tomcat.embed:tomcat-embed-jasper'

⚠️ 坑三:版本冲突怎么解决

# 先查是谁引进来的gradle dependencyInsight--dependencyspring-core# 再强制指定版本
configurations.all{resolutionStrategy{force'org.springframework:spring-core:5.0.9.RELEASE'}}

⚠️ 坑四:私服仓库里的包找不到

repositories{maven{url'https://你的nexus地址/repository/maven-public/'}// 如果需要认证:maven{url'https://你的nexus地址/repository/maven-public/'credentials{username='admin'password='password'}}}

⚠️ 坑五:Guava 版本 RELEASE 无效

原 pom.xml 里写了<version>RELEASE</version>,Gradle 不支持,改成具体版本:

implementation'com.google.guava:guava:30.1.1-jre'

9.6 验证迁移

# 1. 验证能编译.\gradlew compileJava# 2. 打 WAR 包(核心验证).\gradlew bootWar-x test# 输出:build/libs/live.war# 3. 验证能启动java-jar build/libs/live.war--spring.profiles.active=dev

➡️ 下一章:Gradle Wrapper

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询