Gradle入门

Gradle入门

1、Gradle特点及优势

Gradle并不是建议于构建标准之上的一系列选项,而是使用丰富的具有描述性的语言进行开发和扩展这些标准的工具。

Gradle的构建文件时Groovy而不是XML,原因是对于复杂的XML文件来说只适合机器去阅读而不适合人去阅读,还有XML只适合表示嵌套结构而不适用描述程序流。

Groovy是基于JVM的的动态语言,有很多方面类似于Java。每一个Gradle的构建文件实质上就是一个Groovy脚本。作为一个Gradle的初学者,你没有必要知道你在写Groovy代码,当你需要Gradle的高级功能时,深入了解Groovy显得更为重要。不同于Ant和Maven的构建文件,Gradle基于Groovy的构建文件允许你在配置文件中执行类似于编程任务的目的。这将缓解在Ant和Maven中缺乏控制流的问题。

面向领域的构建语言

每一个维护者复杂构建任务的开发者,在某种程度上想在构建文件中书写一块代码。有时候你需要一个迭代器,有时候你需要一个复杂的条件,但同时你又不想对整个文件作出大的改动。但是,给你无限的能力来更改复杂的构建是一件好的事情吗?它有可能给出很大的灵活性,但同时也给维护带来灾难。Gradle的构建文件时Groovy脚本,Gradle使得将选项分解为脚本成为可能,但是这样并不鼓励这么做。

实质上,Gradle并不是想主要通过Groovy而是想通过DSL来构建任务。Gradle用户可以学习这个语言,并不需要知道Groovy,就可以高效的使用Gradle。通过很习惯的DSL就可以构建软件,通常不需要针对性的编程。Gradle推荐用户使用DSL,其次是编程。

当DSL不能解决构建问题的时候,你可以通过插件的方式来扩展DSL。如果你来自Maven,那么Maven插件和Gradle插件有很大的出入。Maven插件通常通过严格的方式扩展工具在一个或多个特定的周期中的行为。在Gradle中,是通过引进一个或者多个任务,来增加构建行为的可配置性,实质上扩展DSL的一种方式:通过插件包含特定的领域。扩展Gradle DSL比在构建文件中书写代码更被推荐。

2、安装

下载zip压缩包,解压缩,将文件夹中的bin目录配置到环境变量中。

3、Hello World构建文件

创建文本文件build.gradle,内容为

task helloworld <<{
println 'hello,world'
}

执行

gradle -q helloWorld

输出结果

'hello,world'

以上这个构建文件没有请求任何事情,也没有任何外部的依赖。他没有做任何的事情除了输出一段消息。在构建java代码之前,再举一个例子。我们将使用两个任务和一个依赖。

task hello <<{
println 'hello'
}
task world(dependsOn:hello) <<{
println 'world'
}

再次执行

gradle -q world

输出结果

hello, world

4、构建Java程序

前面的Hello World程序没有说服力。下面我们看看用它来构建Java代码是多么的容易。为了简单起见,我们将使用一个简单的Java程序,展现一下:只要你遵从它的约定使用Gradle构建Java程序很简单。

HelloWorld.java

位于\src\main\java\org\gradle\example\simple目录下

内容为:

package org.gradle.example.simple;
public class HelloWorld {
  public static void main(String args[]) {
    System.out.println("hello, world");
  }
}

build.gradle内容为

apply plugin:'java'

运行gradle build可生成build文件夹

在\build\classes\main\org\gradle\example\simple文件夹中存在

HelloWorld.class

执行java -cp build/classes/main/ org.gradle.example.simple.HelloWorld可得到

hello, world

5、Gradle命令行

在先前的例子中大多数都从命令行运行,这里面简要介绍Gradle的命令行参数:

-h

帮助

-Dproperty=value

从命令行传递参数

-i -d

设置日志级别

-m

评估构建文件,但不执行任何任务

-q

压制大多数输出,仅显示错误信息

--gui

启动Gradle GUI

-s

释放栈跟踪

6、参考书籍及样例

书籍Building.and.Testing.with.Gradle

Gradle构建简单Java程序




(1)普通用户端(全平台) 音乐播放核心体验: 个性化首页:基于 “听歌历史 + 收藏偏好” 展示 “推荐歌单(每日 30 首)、新歌速递、相似曲风推荐”,支持按 “场景(通勤 / 学习 / 运动)” 切换推荐维度。 播放页功能:支持 “无损音质切换、倍速播放(0.5x-2.0x)、定时关闭、歌词逐句滚动”,提供 “沉浸式全屏模式”(隐藏冗余控件,突出歌词与专辑封面)。 多端同步:自动同步 “播放进度、收藏列表、歌单” 至所有登录设备(如手机暂停后,电脑端打开可继续播放)。 音乐发现与管理: 智能搜索:支持 “歌曲名 / 歌手 / 歌词片段” 搜索,提供 “模糊匹配(如输入‘晴天’联想‘周杰伦 - 晴天’)、热门搜索词推荐”,结果按 “热度 / 匹配度” 排序。 歌单管理:创建 “公开 / 私有 / 加密” 歌单,支持 “批量添加歌曲、拖拽排序、一键分享到社交平台”,系统自动生成 “歌单封面(基于歌曲风格配色)”。 音乐分类浏览:按 “曲风(流行 / 摇滚 / 古典)、语言(国语 / 英语 / 日语)、年代(80 后经典 / 2023 新歌)” 分层浏览,每个分类页展示 “TOP50 榜单”。 社交互动功能: 动态广场:查看 “关注的用户 / 音乐人发布的动态(如‘分享新歌感受’)、好友正在听的歌曲”,支持 “点赞 / 评论 / 转发”,可直接点击动态中的歌曲播放。 听歌排行:个人页展示 “本周听歌 TOP10、累计听歌时长”,平台定期生成 “全球 / 好友榜”(如 “好友中你本周听歌时长排名第 3”)。 音乐圈:加入 “特定曲风圈子(如‘古典音乐爱好者’)”,参与 “话题讨论(如‘你心中最经典的钢琴曲’)、线上歌单共创”。 (2)音乐人端(创作者中心) 作品管理: 音乐上传:支持 “无损音频(FLAC/WAV)+ 歌词文件(LRC)+ 专辑封面” 上传,填写 “歌曲信息
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值