是否有必要抛弃 Maven 之类的项目构建工具?

2016-11-02 21:54:46 +08:00
 profoundexplorer

事情是这样的,在公司内部,两个项目小组都用 Maven ,我在其中,但是另一个小组(不在前面两个小组之内)的同事反对使用 Maven ,他建议使用原始的方式,将第三方 jar 包直接放到工程代码里,代码和 jar 包一起放到 git 里做版本管理。

这样有必要吗?

注意,并不是问是否有必要抛弃 Maven 而转向其他工具例如 gradle 等,而是问是否有必要抛弃这一类项目构建工具。

个人认为, Maven 并没有降低生产力,只是稍微有点学习成本,这点学习成本其实也非常低,此外它能很方便地管理第三方包依赖,简化代码库,显著提高生产效率。

希望大家说说自己的看法。

7586 次点击
所在节点    程序员
72 条回复
lawrencexu
2016-11-03 11:33:20 +08:00
之前我司一个老项目就是用 Ant 这么搞的,我花了三个月时间把上万行的 Ant 脚本转成了 Maven 编译,之后才有了一系列的技术改进和升级,单用 Ant 根本没法搞,也许加上 Ivy 可以。
tomczhen
2016-11-03 11:34:36 +08:00
小孩子才分对错,成年人只看利弊。

我反正是很反感一些人上来就先贴个标签,带个帽子然后把别人批判一番——这跟以前的红卫兵小毛孩有什么区别?

技术选型、推进说白还是博弈,每个人的利益点不同。当然,有些人就根本不是理性经济人,这种人你就不要和他一般见识就好了。

如果当前项目管理方式没有问题,或者问题还不大——大不了加加班,也能解决。作为管理层,如果新技术不能带来“利益”自然是没什么动力推进的,再说了,很多混到管理的“大龄前码农”,下班了还得去抱老婆带孩子。学习成本再低那也是成本,而且风险再低那也是风险不是?

作为下面的码农,这些依赖管理工具, CI 理念又不能直接加工资,毕竟大多数公司招人最重要的还是靓丽的履历表,那些高大上的技术关键字才符合 HR 的基本价值观。

道不同不相为谋。楼主稍微推一下就行了,公司项目代码管理什么的就别掺和了。该继续加强自己就继续,没什么加强的就准备换换环境——就算没法改变世界,改变一下自己还是可以的。
youxiachai
2016-11-03 11:37:19 +08:00
你的同事..还活在 20 年前的世界...
firefox12
2016-11-03 11:41:38 +08:00
如果没有内部的仓库 懂的人不多, 的确直接 jar 包更好。这是基础建设,长期的收益大很多!
ooTwToo
2016-11-03 12:15:56 +08:00
OMG …
Ouyangan
2016-11-03 12:20:18 +08:00
建议辞职~~
Miy4mori
2016-11-03 12:26:04 +08:00
不知而不知其不知者,愚者也——避之!
twiceyuan
2016-11-03 12:26:59 +08:00
@enenaaa 所以你喜欢签半天代码吗? ¯\_(ツ)_/¯
reeco
2016-11-03 12:39:52 +08:00
远离这类同事,没有必要解释
Chrisplus
2016-11-03 12:58:09 +08:00
Gradle 底下也是 maven 那一套。

"Maven 并没有降低生产力", maven 是在提高生产力好么?当然也要看项目的具体情况。假如引用的外部 jar 包长期不需要更新且稳定,也不妨放个 jar 包进去。但是有长期不需要更新且稳定的东西么,还是说你们这个项目一个月做完,然后交付收工,今后再无瓜葛?

楼上说的对,远离这类同事。
lululau
2016-11-03 13:10:43 +08:00
这就是不会用吧,啥也不想学,拷贝 jar 估计 cp 命令也不会用,只会 Windows 资源管理器里 Ctrl-c 的那种
lululau
2016-11-03 13:11:10 +08:00
竟然会用 git ,真不信!
0915240
2016-11-03 13:57:06 +08:00
我以为是要转 gradle 或者 sbt 。。。
aaronmix
2016-11-03 14:04:17 +08:00
maven 跟 gradle 在 dependency 管理上都差不多,但是 gradle 比 maven 强在 build script 是可编程的,而 maven 是 xml ,灵活性不够。以前经常是 maven xml+各种插件+自己写的一些脚本,用 gradle 直接可以把脚本写在 build script 了,方便很多。
至于 jar 是不是在 local ,其实 google/fb 的 build system(buck/blaze)都是保存在 local 的,主要是为了 performance 考虑。
forbreak
2016-11-03 14:12:49 +08:00
我们公司之前的也是不用 maven ,后面教他们用了之后,刚开始都是各种抵触。然后后对公司项目进行整体升级改进的时候,都体会到了好处。
intsilence
2016-11-03 14:32:17 +08:00
建议开倒车的同事一定非蠢即坏。
billwang
2016-11-03 14:57:10 +08:00
我其实想问一下大家都用 maven 的什么 mirror ?现在的好慢
ibeyond
2016-11-03 15:26:19 +08:00
在大家看来,写 MakeFile 的可能都是顽固不化的老怪物了。。。
uxstone
2016-11-03 15:27:40 +08:00
@billwang
用 uk 和阿里云

如果实在太慢就 -DsocksProxyHost=127.0.0.1 -DsocksProxyPort=1080 走代理,
tracymcladdy
2016-11-03 15:34:38 +08:00
远离这种同事+1

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://tanronggui.xyz/t/317548

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX