Maven - 不能错过的 MacOS M1 mvn package 效率提升方案_mac怎么加快maven编译

img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上大数据知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

需要这份系统化资料的朋友,可以戳这里获取

/usr/libexec/java_home -V

我们上面下载的 Java 版本为 Amazon,所以其对应版本就是 corretto-1.8.0_352。

B.更新至环境变量

打开 ~/.bashrc 或者 ~/.bash_profile,取上面版本的数字部分即 1.8.0_352 并添加至 bash 中:

#java8
alias java8='export JAVA_HOME=$(/usr/libexec/java_home -v 1.8.0_352)'

最后记得使用下述命令更新配置

source ~/.bashrc
source ~/.bash_profile

C.使用新环境变量

只需在 Terminal 输入 java8 即可:

java8

echo $JAVA_HOME 看一下,如果为上面 bash 中输入的版本即代表 Terminal JDK 更新完成:

/Users/XXX/Library/Java/JavaVirtualMachines/corretto-1.8.0_352/Contents/Home

三.网速优化

这里物理网速肯定是固定的,我们无法优化,不过我们可以通过配置 maven 镜像,提高 maven 下载相关依赖的速度,常见的镜像有 Aliyun。

1.打开 Maven Setting

通过 Idea 打开 maven settings.xml:

2.配置 Mirror

添加 并在其中添加 aliyun mirror:

  <mirrors>
    <mirror>
      <id>nexus-aliyun</id>
      <mirrorOf>central</mirrorOf>
      <url>http://maven.aliyun.com/nexus/content/groups/public</url>
    </mirror>
  </mirrors>

添加后相关下载均来自 aliyun,避免从公网下载网络不通畅导致打包速度延长:

Tips:

这里还有一些小伙伴有疑问,如果我配置多个镜像或者我已经有其他镜像怎么办。这里 mirrors 支持配置多个 mirror 镜像,但是实际使用中只能使用 1 个镜像,默认情况下使用第一个 mirror。理想情况下是镜像 A 没有的依赖去镜像 B 中寻找,但是实际是只有当镜像 A 无法连接时,才会到连接到镜像 B,所以大家需要根据自己的需求将项目需要的镜像放置到第一位或者使用时指定镜像 name,如果有公司的镜像,也可以以公司镜像为主。

四.多线程打包

maven 支持多线程打包,只需使用 -T 参数指定即可。

1.指定 CPU Cores

mvn -T $CoreNum package

2.指定 CPU 线程倍数

1C 代表使用 1倍的 CPU 线程数进行并行打包,也可以 2C、3C,一般而言 1C 即可。

mvn -T 1C package

Tips:

常规单体项目使用 -T 参数多线程打包效率有提升,但是提升效果有限,如果是多项目融合打包,使用 -T 参数效果明显。

五.更多尝试

1.项目精简

由于编译期间需要将多个 java 文件编译为 .class,所以项目内的代码数量与文件数量一会影响 mvn package 的效率,如果项目里有多余的文件或者代码,可以进行代码瘦身,提高编译效率。

2.忽略测试

忽略编译中的测试阶段:

 mvn package -DskipTests

如果本身没有指定测试类即可忽略,maven 打包期间也会自动提示:

3.本地运行预编译

如果可以在运行前先在本地运行一下待编译项目,也可以大大提高 mvn package 效率,因为本机运行项目时需要先对项目编译一次,从而后面 package 时的编译时间即可节省,当然本质上都一样,就是至少得编译一次。

mvn clean 后 package:

run 后 package:

可以看到差距还是很大的。

六.Mvn Package 实战检验

  • 更换 JDK 版本为 ARM 系列

  • 更换 Aliyun Mirror

  • 采用多线程 -T 1C 打包

本次优化主要修改上述三个部分,下面看一下实战效果。

1.x86 + NoMirror + 单线程 Package

mvn clean 后打包:

run 后打包:

分别耗时 3:42 min 与 23.454 s。

2.ARM + Aliyun Mirror + -T 1C Package

mvn clean 后打包:

img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上大数据知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

需要这份系统化资料的朋友,可以戳这里获取

236)]
[外链图片转存中…(img-aMywxsQm-1715679847236)]

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上大数据知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

需要这份系统化资料的朋友,可以戳这里获取

  • 29
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值