经过一顿骚操作,项目编译打包速度提升一倍!

本文分析了项目编译打包慢、源码包下载失败和模块依赖重复的问题,通过调整Gradle配置,如去除不必要的插件、重复依赖等,成功将打包速度提升一倍,同时解决了源码下载失败的问题。
摘要由CSDN通过智能技术生成

背景

我们的公司的系统中是以微服务方式开发的。每个项目就是一个微服务,有非常多的微服务,比如用户服务、后台管理服务、订单服务、物流服务、商品服务等等。

其中每个项目都使用的 gradle 构建工具打包、发布、部署。

gradle 是一个项目构建工具,与 maven 类似,它提供非常强大的包依赖管理功能。

现象与问题

1.有些项目打包编译速度非常慢,有时需要 5 到 10 分钟,而且还经常失败。
2.有时候点击三方包的查看源码,通过 IDE 进入类的 class 文件,点击下载源码,控制台显示失败。
3.项目发布的 api 包中,除了 rpc 接口必须的 model,还增加了很多无用的包,导致其他项目引入后,jar 过多。

分析

带着这三个问题开始我们的分析。

问题一:项目打包编译速度非常慢,并且经常失败
通过查看打包日志,发现失败的信息是,编译某个模块时时间过长、通过 maven 仓库下载包的时候经常失败、显示超时信息等等,最终输出不能解析 xxx.xxx.xxx 包。
在这里插入图片描述
然后再次重新打包,又经过一段时间漫长的等待,可能会成功,但是时间很长。

在这里插入图片描述
在打包时增加 debug 选项查看下打包过程中出现错误的日志信息。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
我们发现,项目模块在编译打包的时候,出现访问远程仓库资源 403 的信息。

00:29:59.125 [DEBUG] [org.gradle.api.internal.artifacts.ivyservice.ivyresolve.DynamicVersionResolver] Using com.xgoods:xabtest-proto:v0.3.0 from Maven repository 'nexus'
00:29:59.125 [DEBUG] [org.gradle.api.internal.artifacts.ivyservice.ivyresolve.DynamicVersionResolver] Discarding resolve failure.
org.gradle.internal.resolve.ModuleVersionResolveException: Failed to list versions for com.xgoods:xabtest-proto.
        at org.gradle.api.internal.artifacts.ivyservice.ivyresolve.ErrorHandlingModuleComponentRepository$ErrorHandlingModuleComponentRepositoryAccess.listModuleVersions(ErrorHandlingModuleComponentRepository.java:126)
        ...省略...
        at java.base/java.lang.Thread.run(Thread.java:834)
Caused by: org.gradle.api.resources.ResourceException: Unable to load Maven meta-data from http://repo.spring.io/release/com/xgoods/xabtest-proto/maven-metadata.xml.
        at org.gradle.api.internal.artifacts.repositories.maven.MavenMetadataLoader.load(MavenMetadataLoader.java:55)
        at org.gradle.api.internal.artifacts.repositories.maven.MavenVersionLister.listVersions(MavenVersionLister.java:48)
        at org.gradle.api.internal.artifacts.repositories.metadata.DefaultMavenPomMetadataSource.listModuleVersions(DefaultMavenPomMetadataSource.java:73)
        at org.gradle.api.internal.artifacts.repositories.resolver.ExternalResourceResolver.doListModuleVersions(ExternalResourceResolver.java:210)
        at org.gradle.api.internal.artifacts.repositories.resolver.ExternalResourceResolver.access$200(ExternalResourceResolver.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值