为什么 Java 的包管理器都这么复杂?

2021-02-15 18:04:09 +08:00
 SystemLight
  1. 反观 node 的 npm,python 的 pip,.net 的 nuget 哪一个不是一个命令就安装好的依赖包
  2. 为何 java 的 gradle 或者 maven 都没有这样的特性,还需要自己去配置文件而不是命令安装,而且 gradle 用的 groovy 闭包写法外行看了完全懵逼,而 npm 的 package.json 用 json 语法易读相当高
  3. Java 包管理方案难道就不能简单一点,为何要搞得如此复杂,难道不应该是花费更多精力处理业务逻辑么,包管理搞得如此复杂还要去配置这个东西
18313 次点击
所在节点    Java
158 条回复
lionseun
2021-02-15 19:17:31 +08:00
版本需要精确控制,反观 npm pip 的那种升级性版本支持,对于找 bug 就是一种隱性
echo1937
2021-02-15 19:27:26 +08:00
前几楼是无知还是傲慢,动不动就是阴谋论。
vjnjc
2021-02-15 19:29:56 +08:00
感觉打包的痛点是版本冲突,其他的没看出啥区别
murmur
2021-02-15 19:31:45 +08:00
只有没干过项目的才会盲喷这东西多复杂,再复杂的东西只要能抄作业什么都可以搞定,spring 年代就有 springside 给你抄作业了,还真的手写配置啊

最怕的是什么,怕的是抄作业都能抄不过
hantsy
2021-02-15 19:35:10 +08:00
npm 包管理兼容性最差。

软件包依赖问题,除了 Linux 系统的 DEB,好像软件开发领领域 maven 算是鼻祖类吧,除了包依赖管理,Maven 一套生命周期才是神器,黑 Java 真是笑话。
FreeEx
2021-02-15 19:35:40 +08:00
关联这个帖子看就会很喜感 -.- https://v2ex.com/t/752463#reply9
magicZ
2021-02-15 19:39:26 +08:00
@love php 天下第一,不愧是多年前就逃离 java 的 phper.
impl
2021-02-15 19:41:01 +08:00
Java 以前用的是 ant,一些项目像 Tomcat 还在用 ant
lixingjun
2021-02-15 19:41:30 +08:00
历史包袱,npm 确实方便,但也有很多缺点
redtea
2021-02-15 19:59:44 +08:00
一直用 Maven,挺不错的。最近用了 Python 写个项目,它的包管理方式才叫可怕,不能任性升级,否则就无法运行,安装包的顺序也需要注意,否则影响其他包就安装不了,为了安装一个包,我甚至不得不安装 C++编译器。
troywinter
2021-02-15 20:16:20 +08:00
因为你现在站在历史的肩膀上,你用 pip 处理个依赖冲突试试? python 这么多年了都没有个可用的依赖管理,java 面向的是企业级市场,不能说,这个依赖冲突了就改代码,客户停机一次上亿的损失,当你处理了更多 2b 的需求就会知道为啥要设计这么复杂。
xarthur
2021-02-15 20:17:21 +08:00
gradle 一点也不复杂啊……
xarthur
2021-02-15 20:19:25 +08:00
gradle 无脑往 dependences 里写依赖就行了
pursuer
2021-02-15 20:25:38 +08:00
maven gradle 主要是构建工具,而不仅仅是下载依赖,构建不是一个简单的工作,可以看下 make autoconf ninja cmake 构建工具的发展历史。不过我对 gradle 可没有太多好感,一个用于 java 开发的电脑不注意的话电脑上会存有一大堆不同版本的 gradle 。实际 pip/setuptools 也有 python 项目构建功能,可以看看 setup.py 是怎么写的
lower
2021-02-15 20:26:05 +08:00
要什么包管理?
手动复制粘贴 jar 包进 lib,一把梭就是干
打包?把一堆 class 用 rar 打包就行啦,多方便
hafuhafu
2021-02-15 20:33:57 +08:00
maven 管理依赖会复杂吗...我陷入了沉思。
npm I XXX 和复制粘贴一个<dependency>我觉得都没啥心智负担。
我发现有些人对 java 的恶意真的是无限大,费尽心思就要把 java 往“古板”、“复杂”、"不会变通"等刻板印象和标签上引。
limuyan44
2021-02-15 20:36:47 +08:00
难道你是前端出身吗,npm 也配拿出来比了么。
blessingsi
2021-02-15 20:37:09 +08:00
java 确实有一些问题,但是拿 npm,pip 黑 maven 真的合适?不说 maven 除了依赖管理之外的功能,就算是单纯比较依赖管理,这两个都被 maven 秒杀吧?要不然还要那一堆 python 虚拟环境工具干嘛用
micean
2021-02-15 20:42:13 +08:00
依赖管理不就复制粘贴的活,哪里复杂???
wangxiaoaer
2021-02-15 20:45:21 +08:00
前几楼简直无知的要死,我都看的怀疑人生了。

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

https://www.v2ex.com/t/753415

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

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

© 2021 V2EX