looo
V2EX  ›  Java

开发 Java 项目 Gradle 一定比 Maven 好么?

  •  1
     
  •   looo · Apr 29, 2024 · 10367 views
    This topic created in 924 days ago, the information mentioned may be changed or developed.
    Supplement 1  ·  Apr 30, 2024
    各位大佬,非常感谢你们的的留言🙇‍♂️。我都看到了,太多了回复不过来了,取舍我大概知道了。
    49 replies  •  2024-05-02 16:13:21 +08:00
    Sezxy
    Sezxy
    Apr 29, 2024
    1
    不是
    InkStone
    InkStone
    Apr 29, 2024
    2
    gradle 我个人感觉适合构建需求复杂的中型项目。

    如果构建需求比较简单,那直接 maven 就行了。

    如果是大型项目,那 gradle 的兼容性会让你痛不欲生。
    feelinglucky
    feelinglucky
    Apr 29, 2024❤️3
    3
    @InkStone 背 gradle 版本号坑过的人一般都直接用 gradle warpper 了,别问我为什么
    techstay
    techstay
    Apr 29, 2024
    4
    爱用啥用啥,gradle 上手门槛高一些
    unclevv
    unclevv
    Apr 29, 2024❤️1
    5
    你啥项目 maven 满足不了你?
    iyiluo
    iyiluo
    Apr 29, 2024
    6
    gradle 升级太快了,maven 比较稳重
    eleganceoo
    eleganceoo
    Apr 29, 2024
    7
    gradle 很灵活,适合复杂需求项目,一般 maven 就够了,也比较大众
    chendy
    chendy
    Apr 29, 2024
    8
    不一定,但是规模不大复杂度不高 maven 够用了…
    chuck1in
    chuck1in
    Apr 29, 2024
    9
    我倒是一直在用 gradle ,op 啥原因觉得 gradle 不好呢。
    唯一的 gradle 问题我是觉得 gradle 比较吃 cpu ,虽然 gradle 所谓的说是很快,但是实际上快是建立在你 cpu 强的基础上的。
    Ayanokouji
    Ayanokouji
    Apr 29, 2024
    10
    maven 也就吐槽下 xml 吧,包管理工具比 maven 强的没几个。gradle 很秀,但是难度也增加了,如果有特定需求,gradle 灵活多更高。
    fredweili
    fredweili
    Apr 29, 2024
    11
    Maven 已经不记得怎么用了
    rockddd
    rockddd
    Apr 29, 2024
    12
    世界上哪有那么多绝对的事情
    cleanery
    cleanery
    Apr 29, 2024❤️1
    13
    @chuck1in #9 它能把 cpu 吃满,这是好事,编译的时候,全速完成就好。
    wetalk
    wetalk
    Apr 29, 2024❤️1
    14
    gradle 能用的,maven 一样跑,maven 用着不爽的项目,gradle 也没好到哪去,总结下来就是有优势,但不大
    byte10
    byte10
    Apr 29, 2024
    15
    我只记得 一个实现 有好几个写法,我直接放弃。人老了,不折腾。
    securityCoding
    securityCoding
    Apr 29, 2024 via Android
    16
    写过两年 go 之后,这两货都不好用
    LoNeZ
    LoNeZ
    Apr 29, 2024
    17
    gradle 缺点 kts 太慢了..然后是写法太多了.不过最新版感觉还行能用代码定义的都用代码定义, 少些配置文件. maven 的 xml 实在是太啰嗦了.个人项目倾向于 gradle 玩法很多..
    unco020511
    unco020511
    Apr 29, 2024
    18
    gradle 好用
    layxy
    layxy
    Apr 29, 2024
    19
    gradle 的版本号是真的坑
    hengyunabc
    hengyunabc
    Apr 29, 2024
    20
    所有的开源项目都要看背后的商业公司。gradle 是基于 groovy 开发的,groovy 已经被证明是一个没啥前途的项目。gradle 出来很多年使用率都一般,后面被 Android 出来拉了一把。因为 Android 的打包太复杂了,需要 gralde 才能比较好配置。
    后面 gradle 支持 kotlin 配置,又拉了一把。
    reeco
    reeco
    Apr 29, 2024
    21
    没有条件编译,交叉编译等需求的,直接 maven 就好了
    liaojl
    liaojl
    Apr 29, 2024 via iPhone
    22
    grade 兼容性太差了,用 gradle wrapper 又给你下一堆不同版本的 gradle 下来,以前 4.0+版本的时候,一个守护进程占用 1G 多内存,不知道现在好些没有。如果你只是用来解决依赖,用 maven 没毛病。有些人执着于去 xml ,对于 maven 来说没必要,依赖项都是从 maven repository 上 ctrl cv 下来的,xml 格式统一,方便多人协作。反观 gradle 用 DSL ,不同人有不同的写法风格,看着头大。当然,如果你有复杂的构建任务,那还是 gradle ,用 maven 来整实属受罪。
    caiqichang
    caiqichang
    Apr 29, 2024
    23
    为什么 maven 没有 wrapper 这种需求,因为他的 api 很稳定,而 gradle 一个版本换一套 api
    300
    300
    Apr 29, 2024 via Android
    24
    gradle 更新太快了,公司项目拖了很久的 publish API 好不容易改完,新版本又换语法了…
    yuezk
    yuezk
    Apr 29, 2024
    25
    包管理工具最好是统一,如果已经有项目在用 Gradle 或 Maven 了,建议保持一致。如果是新项目建议尝试一下 Gradle ,包管理这类的工具有个后发优势,Gradle 吸取了 ivy, maven 和 ant 的长处,优点远大于他的缺点。然后用的时候用 Gradle wrapper ,这是官方的最佳实 ( https://docs.gradle.org/current/userguide/gradle_wrapper.html)。
    yazinnnn0
    yazinnnn0
    Apr 29, 2024
    26
    不是, 但是有些东西你只能用 gradle(kts), 比如 kmp
    https://kmp.jetbrains.com/#newProject
    yuezk
    yuezk
    Apr 29, 2024
    27
    @caiqichang #23 官方的 maven wrapper https://maven.apache.org/wrapper/
    Ayanokouji
    Ayanokouji
    Apr 29, 2024
    28
    @caiqichang maven 也有 wrapper 了
    suibianwanwan
    suibianwanwan
    Apr 29, 2024
    29
    gradle 好用, 用了 gradle 以后, 再也不想用 maven
    gongxuanzhang
    gongxuanzhang
    Apr 29, 2024❤️1
    30
    maven 的包管理从诞生开始到现在 20 多年无人撼动,本质上就是因为他的 gav 三件套太强.
    maven 的生命周期固定清晰, 一张 maven 生命周期流程图百看不厌. 所以 maven 胜在稳定.
    maven 优点就是稳定,缺点也是稳定. 如果你要写一个复杂功能的插件你想死的心都有,写过的应该都有这种感受.
    Gradle 优点就是灵活,缺点也是灵活. 上手难度高,各种插件繁杂且碎片.但是同样复杂的功能你在 maven 实现和 gradle 中实现的体验完全不一样.
    如果你想实际体会一下性能区别,建议你用 maven 写一个 java kotlin 混编的程序, 再用 gradle 写一个,你就体会性能差距.
    如果你想实际体验插件开发,那你用 maven 和 gradle 分别实现一个 project 中行数统计的功能.
    我自己的感受: 跑 main,跑 test,maven 明显更快 其他都是 gradle 更胜一筹
    其他你自己体会
    unco020511
    unco020511
    Apr 29, 2024
    31
    你像 android 这种复杂项目,经常要自己写一些 task 来在编译过程插桩做操作,maven 就很难胜任了,服务端应该也是类似吧,一旦你的项目编译期有各种复杂操作,理论上 gradle 是更适合的
    ttttttttt
    ttttttttt
    Apr 29, 2024
    32
    都用上 Wrapper~
    - 无论 Maven 还是 Gradle ,现在都推荐用 Maven Wrapper 或 Gradle Wrapper ,保证可复现性。
    - Gradle 的核心开发也说过:只要你不是开发 Gradle 本身,你就安心用 Gradle Wrapper 。

    选 G/M:
    - 简单开发 Java 项目,写写业务,你用熟练的就好。
    - Maven 近些年没怎么更新大的 feature 了,因为核心功能简单易用,复杂部分它有扩展的插件机制。
    - 想玩新工具,了解了解 Gradle ,挺好玩。
    boatrain1111
    boatrain1111
    Apr 29, 2024
    33
    如图所示:
    whatiam
    whatiam
    Apr 29, 2024
    34
    如果用 maven ,请用 maven wrapper 。
    如果用 gradle ,请用 gradle wrapper 。
    如果有的选择,请选择 gradle 。
    如果没得选择,也建议多看看 maven 和 gradle 官网文档。

    拥抱新技术是正道。建议能用 gradle 还是用 gradle 。能很方便的做出 maven 很难或者根本做不到的功能。
    yichengxian
    yichengxian
    Apr 29, 2024
    35
    电脑不够好,我用 maven
    Ericcccccccc
    Ericcccccccc
    Apr 29, 2024
    36
    主要是看你团队用了什么
    retanoj
    retanoj
    Apr 29, 2024
    37
    我本人还是很讨厌 OP 发帖后一句话也不说的情况
    (不知道这条 OP 看不看得到
    Kamiyu0087
    Kamiyu0087
    Apr 29, 2024
    38
    我喜欢 gradle
    不喜欢看 xml
    28Sv0ngQfIE7Yloe
    28Sv0ngQfIE7Yloe
    Apr 29, 2024
    39
    maven 有一种美
    zhady009
    zhady009
    Apr 29, 2024 via iPhone
    40
    用 Maven 构建复杂点或者想做方便点的功能就避不了写插件,而且写 DSL 比 xml 舒服多了
    luzemin
    luzemin
    Apr 29, 2024
    41
    @retanoj 哈哈哈
    luzemin
    luzemin
    Apr 29, 2024
    42
    Java8 + Maven 才能体现我们 javaer 的朴实
    huzhizhao
    huzhizhao
    Apr 29, 2024 via iPhone
    43
    我一个破码农,怕是没有资格回复这个帖子哦
    只想说项目用啥你用啥。遵从大多数人的想法才是常态
    至于自己的,你想用啥就用啥
    hefish
    hefish
    Apr 30, 2024
    44
    @retanoj 其实这叫论坛气氛组,负责引起话题,至于结果是啥不重要,重要的是有人回帖。 比如:新手想买车啦,欢迎推荐啊。 再比如:喜欢上了一个妹子啊,大家帮忙分析分析啊;再比如:碰到资本家了啊,大家说我怎么办啊。。。
    luoshuimumu
    luoshuimumu
    Apr 30, 2024
    45
    如果你们的构建场景比较复杂自定义了 gradle 任务,升 gradle 版本的时候就享大福了。只用来组装依赖的话 gradle 和 maven 差不多的。
    AlexBob
    AlexBob
    Apr 30, 2024
    46
    gradle
    monkeyk
    monkeyk
    Apr 30, 2024
    47
    已经用了十几年 maven ,尚且够用就一直用;稳定优先
    a5X77vajGRyLA2aF
    a5X77vajGRyLA2aF
    Apr 30, 2024 via Android
    48
    ant ,maven 都深度使用过。
    gradle 简单使用过。

    体验最好的是 maven
    单体项目就 maven + linux shell 脚本
    微服务项目是 maven+docker+jenkins 。
    win301
    win301
    May 2, 2024
    49
    曾经开发过一个比较复杂的系统,功能很多,项目组 5 个人,开发了约 1 年时间,最终项目完成后,大概有 800+类文件(我相信很多人看到这个类文件的数量可能都会想着应该将项目模块化拆分,我在这里不做过多讨论,就先假设项目组没有多余时间来做),每次使用 Maven 打包,需要耗时 2 分 20 秒左右,这已经是优化过一轮后的结果,在优化前大约 3 分 40 秒左右,我想着这样可不行,能不能有其他构建工具能提高项目的打包速度呢?以前就看过 Android 的同事在用 gradle 来打包,我想着后端项目理论上也应该可以打包,原理差不多,然后就去官网看了教程,然后开始研究 Maven 项目转换 Gradle ,通过 gradle 提供的命令行工具转换完成后,迫不及待的试试进行打包操作,然后神奇的事情发生了,这个项目打包成 jar 文件只用了 9 秒钟,虽然打包前还需要改一些打包所需要的代码,但最终的代价是值得的,以后所有项目就都用 Gradle 了
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   2454 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 272ms · UTC 12:22 · PVG 20:22 · LAX 04:22 · JFK 07:22
    ♥ Do have faith in what you're doing.