当前位置:首页 > 天道酬勤 > 正文内容

k8s安装使用(gradle文件)

张世龙2021年12月17日 14:09天道酬勤1720

简介

gradle的最新版本为6.7,从2009年的第一个版本到2020年的6.7,发展了11年。 gradle是作为安卓的官方构建工具部署的,不仅支持java,还支持多种语言的构建,因此用途非常广泛。

gradle是一个开源构建工具,可以使用groovy或kotlin编写gradle脚本。 因此,gradle是一种非常强大、高度定制、非常快速的构建工具。

根据我的理解,gradle非常强大,但是对于java程序员来说,它提供了常用的maven,或者同时提供了maven和gradle的构建方法。

为什么会这样呢? 我个人认为有两个原因:

第一个原因是依赖于gradle安装文件和软件包的网络环境,光靠国内的网络环境很难完成安装。

第二个原因是,gradle需要自己编写构建脚本,对于纯配置的脚本很复杂。

由于

安装gradle和解决gradle安装的问题

gradle需要java8支持,因此必须首先安装JDK8或更高版本。

JAVA -版本

JAVA版本' 1.8.0 _ 151 '

Java(TM )安全环境(建筑1.8.0 _ 151-B12 ) ) ) ) ) ) )。

JAVA热点(TM ) 64位服务器)构建25.151-B12,混合模式) )。

安装gradle有两种方法。 一个是最容易从官网上下载安装包。 然后,将其解压缩到一个目录中,最后在该目录下的可承受的夜晚指向PATH。

mkdir /出口/接地

unzip-d/opt /大地水准- 6.7 -可承受的夜晚. zip

LS/OPT /格雷尔/格雷尔- 6.7

许可证通知可以承受的夜晚自述文件init.d lib媒体

出口路径=$路径: /出口/地面/地面- 6.7 /可忍受的夜晚

如果要使用软件包管理器(如MAC上的brew )进行管理,可以按如下方式安装:

红色安装等级le

但是,这样的安装在下载gradle安装软件包时被卡住的可能性很高。

==下载https://服务. grad le.org/distributions/grad le-6.4.1 -可以忍受的夜晚. zip

##O#- #

怎么办才好呢?

在这种情况下,我们需要自己下载gradle-6.4.1-可以承受的夜晚. zip安装包,放入http服务器,以便这个压缩包可以通过http协议访问。

简单的方法是将此zip文件复制到IDEA,然后利用IDEA本地服务器的预览功能获取zip的http路径。 例如,http://本地主机336063345 /地球/地球- 6.7 -地球。

从这里开始是最精彩的部分。 需要修改gradle.rb文件。

红色编辑渐变

使用上述命令修改gracle.rb文件,替换以下部分:

主页' https://www.grad le.org/'

URL ' https://服务.等级le.org /分布式/等级le-6.7 -全部. zip '

sha 256 ' 0080 DE 8491 F0918 E4 F529 A6 DB 6820 FA0B9E 818 EE 2386117 F4394 F95 FEB 1D 5583 '

将url替换为http://localhost :63345/grad le/grad le-6.7-all.zip,其中sha256使用名为sha256sum gradle-6.7-all.zip的命令

获取。

替换之后,重新执行brew install gradle即可安装完成。

安装完毕之后,我们使用gradle -v命令可以验证是否安装成功:

gradle -v Welcome to Gradle 6.7!

Gradle特性

gradle作为一种新的构建工具,因为它是依赖于groovy和kotlin脚本的,基于脚本的灵活性,我们通过自定义脚本基本上可以做任何想要的构建工作。

虽然说gradle可以做任何构建工作,但是gradle现在还是有一定的限制,那就是项目的依赖项目前只支持于maven和愤怒的宝贝兼容的存储库以及文件系统。

gradle通过各种预定义的插件,可以轻松的构建通用类型的项目,并且支持自定义的插件类型。

另外一个非常重要的特性是gradle是以任务为基础的,每一个build都包含了一系列的task,这些task又有各自的依赖关系,然后这些task一起构成了一个有向无环图Directed Acyclic Graphs (DAGs)。

有了这个DAG,gradle就可以决定各个task的顺序,并执行他们。

我们看两个task DAG的例子,一个是通用的task,一个是专门的编译java的例子:

task可以依赖task,我们看个例子:

task hello { doLast { println 'Hello world!' } } task intro { dependsOn hello doLast { println "I'm Gradle" } }

一个task可以包含Actions,inputs和Outputs。根据需要这些类型可以自由组合。

标准task

Gradle包含了下面7种标准的task:

clean :用来删除build目录和里面的一切。check:这是一个生命周期任务,通常做一些验证工作,比如执行测试任务等。assemble :这是一个生命周期任务,用来生成可分发的文件,比如jar包。build: 也是一个生命周期任务,用来执行测试任务和生成最后的production文件。通常我们不在build中直接做任何特定的任务操作,它一般是其他任务的组合。buildConfiguration: 组装configuration中指定的archives。uploadConfiguration: 除了执行buildConfiguration之外,还会执行上传工作。cleanTask: 删除特定的某个task的执行结果。

Build phases

一个gradle的build包含了三个phases:

Initialization: 初始化阶段。gradle支持一个或者多个project的build。在初始化阶段,gradle将会判断到底有哪些project将会执行,并且为他们分别创建一个project实例。Configuration: 配置阶段。gradle将会执行build脚本,然后分析出要运行的tasks。Execution: 执行阶段。gradle将会执行configuration阶段分析出来的tasks。

Gradle Wrapper

上面讲的是gradle的手动安装,如果是在多人工作的环境中使用了gradle,有没有什么办法可以不用手动安装gradle就可以自动运行gradle程序呢?

方法当然有,那就是gradle wrapper:

gradle wrapper是一个工具,通过它我们可以方便的对本地的gradle进行管理。

上图列出了gradle wrapper的工作流程,第一步是去下载gradle的安装文件,第二步是将这个安装文件解压到gradle的用户空间,第三步就是使用这个解压出来的gradle了。

我们先看下怎么创建gradle wrapper:

虽然Gradle wrapper的作用是帮我们下载和安装gradle,但是要生成gradle wrapper需要使用gradle命令才行。也就是说有了wrapper你可以按照成功gradle,有了gradle你才可以生成gradle wrapper。

假如我们已经手动按照好了gradle,那么可以执行下面的命令来生成gradle wrapper:

$ gradle wrapper > Task :wrapper BUILD SUCCESSFUL in 0s 1 actionable task: 1 executed

先看下生成出来的文件结构:

. ├── gradle │ └── wrapper │ ├── gradle-wrapper.jar │ └── gradle-wrapper.properties ├── gradlew └── gradlew.bat

gradle/wrapper/gradle-wrapper.properties 是 wrapper的配置文件,我们看下里面的内容:

distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists distributionUrl=https\://services.gradle.org/distributions/gradle-6.7-all.zip zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists

其中distributionUrl就是我们要下载的gradle的路径,其他的配置是gradle的安装目录。

一般来说有两种安装文件类型:可耐的黑夜和all。可耐的黑夜和all的区别在于,可耐的黑夜只有安装文件,而all还包含了gradle的文档和样例代码。

我们可以通过–distribution-type参数来修改安装文件的类型。此外还有 –gradle-version ,–gradle-distribution-url和–gradle-distribution-sha256-sum 这几个参数可以使用。

$ gradle wrapper --gradle-version 6.7 --distribution-type all > Task :wrapper BUILD SUCCESSFUL in 0s 1 actionable task: 1 executed

除了配置文件之外,我们还有3个文件:

gradle-wrapper.jar: wrapper业务逻辑的实现文件。gradlew, gradlew.bat :使用wrapper执行build的执行文件。也就是说我们可以使用wrapper来执行gradle的build任务。

wrapper的使用

我们可以这样使用gradlew,来执行build:

gradlew.bat build

注意,如果你是第一次在项目中执行build命令的话,将会自动为你下载和安装gradle。

wrapper的升级

如果我们想要升级gradle的版本,也很简单:

./gradlew wrapper --gradle-version 6.7

或者直接修改 gradle-wrapper.properties 也可以。

一个简单的build.gradle

我们看一个非常简单的gradle的例子:

plugins { id 'application' } repositories { jcenter() } dependencies { testImplementation 'junit:junit:4.13' implementation 'com.google.guava:guava:29.0-jre' } application { mainClass = 'demo.App' }

上面我们需要安装一个application plugin,使用的是jcenter的依赖仓库,还指定了几个具体的依赖项。最后,指明了我们应用程序的mainClass。

gradle使用maven仓库

build.gradle中的repositories指明的是使用的仓库选项。

默认情况下gradle有自己的本地仓库,一般在~/.gradle目录下面,如果我们之前用的是maven仓库,那么在本地的maven仓库中已经存在了很多依赖包了,如何重用呢?

我们可以这样修改repositories:

mavenLocal() mavenCentral()

这样的话, 就会优先从maven的仓库中查找所需的jar包。

总结

本文只是一个很简单的gradle介绍,让大家对gradle有一个基本的了解,后面我们会详细的介绍gradle的各种用法,敬请期待。

本文已收录于 http://www.flydean.com/gradle-kick-off/

最通俗的解读,最深刻的干货,最简洁的教程,众多你不知道的小技巧等你来发现!

欢迎关注我的公众号:「程序那些事」,懂技术,更懂你!

扫描二维码推送至手机访问。

版权声明:本文由花开半夏のブログ发布,如需转载请注明出处。

本文链接:https://zhangshilong.cn/work/23502.html

分享给朋友:

发表评论

访客

看不清,换一张

◎欢迎参与讨论,请在这里发表您的看法和观点。