文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

Mvnw,到底是什么鬼?

2024-12-10 16:50

关注

 本文转载自微信公众号「小姐姐味道」,作者小姐姐养的狗  。转载本文请联系小姐姐味道公众号。 

使用start.spring.io生成项目,会发现里面有mvnw和mvnw.cmd两个文件。两个文件加起来有20多kb。

我代码还没超过20行呢,就整上这样两个文件,做什么用呢?到底是什么鬼?

官方说,它是maven的一个wrapper,在找不到maven的时候,它会自动下载一个;或者,碰到你的项目maven和你环境里的mavne不兼容,它也会自动下载一个。

这不是在搞笑么?不知道我现在身处局域网深处么?

我们尝试执行一下传统的mvn命令,可以看到它使用mvnw去替换了自己。

  1.  ~/codes/ $ mvn -Dmaven.test.skip=true -Pdev package 
  2. executing mvnw instead of mvn 
  3.  
  4. Exception in thread "main" java.util.zip.ZipException: error in opening zip file 
  5.     at java.util.zip.ZipFile.open(Native Method) 
  6.     at java.util.zip.ZipFile.(ZipFile.java:225) 
  7.     at java.util.zip.ZipFile.(ZipFile.java:155) 
  8.     at java.util.zip.ZipFile.(ZipFile.java:169) 
  9.     at org.apache.maven.wrapper.Installer.unzip(Installer.java:169) 
  10.     at org.apache.maven.wrapper.Installer.createDist(Installer.java:86) 
  11.     at org.apache.maven.wrapper.WrapperExecutor.execute(WrapperExecutor.java:121) 
  12.     at org.apache.maven.wrapper.MavenWrapperMain.main(MavenWrapperMain.java:61) 

但是但是,等了良久,日志也没有向下滚动。等了十几分钟,好不容易有输出了,结果报错。然后接下来每次运行都报错。

聒噪的很,是时候要让它露出真面目了。

使用ps命令,找到了它的启动参数。这才发现,除了mvnw文件,它还偷偷的在项目中放了.mvn目录,好家伙,足足有64kb。

  1. # ps -ef| grep mvn 
  2. java -classpath ~/codes/.mvn/wrapper/maven-wrapper.jar -Dmaven.home=~/codes -Dmaven.multiModuleProjectDirectory=~/codes  org.apache.maven.wrapper.MavenWrapperMain -Dmaven.test.skip=true -Pdev package 

这可真是多此一举,不如不举。你要是贴心,直接塞个apache maven在里面啊。

深处国内,对付这玩意最好的方式,那就是:

删掉它!

删掉它!

删掉它!

[[344020]]

即使它的初衷如何好,目标是如何宏大,还是要毫不留情的干掉它。

曾经有个小弟,使用mvnw下载了一下午的jar包,最后茫然的向我吐槽:公司的maven私服太慢了。

不能背这个锅。

一个好的项目,不会依赖特定的打包工具。这算是maven项目偷懒出的插件,因为一个基础工具,有一个点必须要做到,那就是向后兼容。

搞出这么个工具,连个CDN都舍不得弄,这不是方便开发人员,而是给开发人员添乱。

更要命的是,企业内部都是自己搭建maven私服的,有自己的配置文件和账号。使用这个玩意,还得需要知道maven下载在哪了,找到以后替换它的配置文件。典型的管生不管养啊。

当然了,gradle也是一个德行。

所以,xjjdog的处理方式是,看到mvnw和.mvn这些文件,第一时间就毫不留情的干掉它。

虽然我很残忍,辜负了作者的一片好心。但深处这样的网络环境之中,我也是无奈之举啊。

作者简介:小姐姐味道 (xjjdog),一个不允许程序员走弯路的公众号。聚焦基础架构和Linux。十年架构,日百亿流量,与你探讨高并发世界,给你不一样的味道。我的个人微信xjjdog0,欢迎添加好友,进一步交流。

 

来源:小姐姐味道内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯