商务网站要怎么设计,交换友情链接是什么意思,广告设计专业属于什么大类,如何建设网页制作的网站大家好#xff0c;我是风筝 作为Java 开发者#xff0c;你平时用 Maven 还是 Gradle#xff1f; 我一直用的都是 Maven#xff0c;但是前几天做了一个小项目#xff0c;用的是 Gradle#xff0c;因为项目创建出来默认就是用的 Gradle#xff0c;而且功能足够简单#x…大家好我是风筝 作为Java 开发者你平时用 Maven 还是 Gradle 我一直用的都是 Maven但是前几天做了一个小项目用的是 Gradle因为项目创建出来默认就是用的 Gradle而且功能足够简单我也就没动。
实话说以前也接触过 Gradle。最早是我想学学 Android 开发Android 项目默认就是用 Gradle其实那时候我对Gradle 的印象就不是很好。 本来下载 Android SDK 就够慢的了我记得第一次搭Android 环境弄了足足一天。好不容易 SDK下载完了就想写了 Hello World 跑一下结果发现本地没有 Gradle这时候Android Stuido 其实会自动下载 Gradle 的就是一个 Gradle.zip的文件相信很多人对这个文件有阴影但是国内的网络死活就是下载不下来。ps: 现在下载 Gradle 应该是问题不大了因为 Gradle 开通了国内的 CDN 大哥我就想跑个 Hello World何罪之有啊后来一顿搜索跟着好几个教程好歹是跑起来了。 在那儿之后我就没碰过 Gradle 了。直到有一天看到 Spring 和 Spring Boot 都从 Maven 切换到 Gradle了。诶难不成 Gradle 已经这么厉害了让 Spring 团队都抛弃 Maven 了。 然后我把 Spring Boot 最新仓库 clone 下来结果一构建一堆报错解决一个又一个呀就这 我把原因归结于 Gradle 使用门槛过高外加自己能力不行。直到有一天看到有人说“有几个 Gradle 项目能一次性构建成功跑起来的吗” 当然这不能就说 Gradle 不好用Gradle 老鸟们基本上不存在这样的问题说到底还是理解的不够到位。 为什么 Spring 放着好好的 Maven 不用要费大力气切到 Gradle呢Spring 这么大的项目切到 Gradle 也没那么容易也是在很多人包括Gradle 团队成员的帮助下才迁移完成的。据官方介绍迁移的主要原因就是为了减少构建时间构建速度确实是 Gradle 强于 Maven的一大优势尤其是对于大项目更是如此。 Maven Maven 是一个项目管理和构建工具主要用于 Java 项目的构建、依赖管理和项目生命周期管理。Maven 的核心是包管理工具至于项目构建其实是依靠插件来完成的比如 maven-compiler-plugin插件等。
Maven 遵循“约定优于配置”的原则提供了一套默认的项目结构和构建流程。如果开发者遵循这些约定Maven 就能自动处理很多配置工作从而减少开发者的配置负担。 Maven 使用 XML 文件的形式管理依赖包也就是项目中的 pom.xml整个 XML 文件的格式都是固定的仓库怎么引入、依赖怎么引入、插件怎么引入都是约定好的照着做就好了一个项目的 pom 文件复制到另一个项目中改一下包依赖、改一下基本项目信息其他的基本完全复用。 Gradle Gradle 是一个构建自动化工具广泛用于软件项目的构建、依赖管理和项目生命周期的管理。它最初是为了构建 Java 项目而设计的但如今它支持多种编程语言和技术包括 Java、Kotlin、Groovy、Scala、Android 等。
其在自动化构建能力上更强包管理只是其中的一个功能。 Gradle 采用基于 Groovy 或 Kotlin 的领域特定语言DSL允许开发者通过编写脚本来自定义构建过程。相比其他构建工具如 MavenGradle 更加灵活和强大。这就是它灵活性所在但是也是它的门槛所在也就是说你要使用它还要理解 Groovy 或 Kotlin理解的不到位可能会带来很多问题。这也是很多人吐槽它的原因过于灵活的副作用就是门槛过高。 优缺点比较 其实通过上面的介绍也能看出一些端倪了。 学习门槛 首先在学习门槛上显然 Gradle 更高。一般项目 Maven 加几行 XML 就行了构建插件也就那么几个只需要复制粘贴就可以了而 Gradle 中多少要了解一点 Groovy 或 Kotlin 吧。 灵活性 Gradle 的灵活度更高Maven 则是中规中举。如果你的构建行为比较复杂可能纯靠 Maven 自己的配置文件没办法实现就需要你自己写一些辅助脚本了。而用 Gradle 的话你可以使用它的 DSL 能力定制非常复杂的构建流程。 性能 这个不得不承认Gradle 的性能更高。据官方介绍一般的项目使用 Gradle 构建的速度是Maven 的至少2倍而一些大型项目的复杂构建在极端情况下能达到 Maven 的100倍这好像有点儿夸张了不过快几倍应该是有的这也是为什么 Spring 切换到 Gradle 的理由切换到 Gradle 后构建时间大概是20多分钟可想而知使用 Maven 的话应该要一个小时以上了。 性能好是有代价的除了原理不一样外Gradle 会有一些后台进程所以对于一些性能不怎么样的开发机来说使用 Gradle 反而会觉得卡。 用户体验 用户体验是个很主观的东西有人就觉得 Maven 好即使慢一点也是它好。有人就觉得 Gradle 好灵活而且门槛高用它说明我技术好啊。 但是 Maven 的稳定性是非常好的一个 Maven 3.5 用好几年也没啥问题但是 Gradle 不一样好多版本是不做兼容的。比如我本地安装了新版本但是有一个项目用的是老版本那很可能这个项目是没办法跑起来的只能去安装和这个项目适配的版本。这也是 Gradle 被疯狂吐槽的一个点即使是 Gradle 用户。 最后 作为开发者如何选择呢对我来说我就老实的用 Maven 就好了反正我也基本上做不了那么大型的、构建一次几个小时的应用使用 Maven 就图个省心。安心写代码就好了构建的事儿交给Maven、交给插件就好了。典型的实用主义。 一家之言啊作为开发者来说第一肯定是要跟着公司的规定来公司如果用 Gradle 那你也不能坚持用 Maven。同理公司用 Maven你也不能另辟蹊径的用 Gradle 。 其实到最后可能就是习惯问题了如果一个工具用的时间超过几个月那基本上所有的问题都不是问题了