Flutter如何启用Build cache?构建耗时过长求助
构建提速解决方案:启用缓存+其他优化技巧
一、启用构建缓存(针对不同主流工具)
Gradle
在项目根目录的gradle.properties文件中添加:
org.gradle.caching=true
若需精细配置缓存策略,可在build.gradle中补充:
buildCache { local { directory = file("$rootDir/build-cache") removeUnusedEntriesAfterDays = 30 } }
Maven
使用Maven Build Cache Extension,在项目pom.xml中添加扩展依赖:
<build> <extensions> <extension> <groupId>org.apache.maven.extensions</groupId> <artifactId>maven-build-cache-extension</artifactId> <version>1.0.0</version> <!-- 替换为最新稳定版 --> </extension> </extensions> </build>
随后在settings.xml或项目.mvn/maven.config中启用缓存:
-Dmaven.build.cache.enabled=true
Webpack
在webpack.config.js中开启持久化缓存:
module.exports = { cache: { type: 'filesystem', // 文件系统缓存比内存缓存更持久 buildDependencies: { config: [__filename] // 配置文件变更时自动重置缓存 } } };
npm/yarn 前端项目
npm 7+默认启用缓存,若曾手动禁用可在.npmrc中恢复:
cache=true cache-dir=./.npm-cache
Yarn无需额外配置,若缓存异常可执行yarn cache clean清理旧缓存后重新构建。
二、其他加速构建的实用技巧
- 增量构建:确保构建工具开启增量模式(多数工具默认启用,若手动关闭需恢复),仅重新编译修改过的文件,避免全量重复构建。
- 并行构建:Gradle在
gradle.properties中加org.gradle.parallel=true;Maven执行时加参数-T 1C(按CPU核心数分配任务);Webpack给loader配置parallel: true。 - 精简依赖:用
gradle dependencies --scan或npm ls分析依赖树,剔除未使用的依赖;将依赖按compileOnly(仅编译用)和implementation(运行时用)分类,缩小编译范围。 - 跳过非核心任务:临时构建时跳过测试、lint、签名等步骤,比如
gradle build -x test、mvn package -DskipTests,正式发布再执行全流程。 - 升级工具版本:新版本构建工具通常有性能优化,比如Gradle 7+缓存效率大幅提升,Webpack 5的持久化缓存更稳定。
- 切换国内镜像源:将依赖源换成阿里云Maven镜像、淘宝npm镜像等,避免依赖下载缓慢拖慢构建。
- 硬件优化:给构建机器增加内存(Java类构建工具建议至少4G内存),使用SSD存储提升文件读写速度。
内容的提问来源于stack exchange,提问作者Seaky Lone
相关产品推荐
相关产品推荐

