gradlew和gradle的区别

概念理解

gradlew就是对gradle的包装和配置,gradlew是gradle Wrapper,Wrapper的意思就是包装。

因为不是每个人的电脑中都安装了gradle,也不一定安装的版本是要编译项目需要的版本,那么gradlew里面就配置要需要的gradle版本。

然后用户只需要运行gradlew就可以按照配置下载对应的gradle到项目的目录中,仅仅给项目本身用,然后就是clean、build等操作。

但是如果执行gradle clean 这样的命令的话,系统使用的是电脑环境变量中配置的gradle,或者是找不到命令。

此时我们就用gradlew clean这个命令,其实内部调用的是本项目中的gradle来执行的,所以就相当于进行了一次包装。

关于每次gradlew都去下载gradle问题

方法1:可以使用gradle命令打包而不是gradlew

配置gradle到环境变量;工程中使用自己配置变量的gradle即可。

先找到gralde的根目录,在系统变量里添加两个环境变量:

变量名为:GRADLE_HOME,变量值就为gradle的根目录; 比如变量值为:D:androidandroid-studio\studiogradlegradle-2.10

还有一个在系统变量里PATH里面添加gradle的bin目录;比如:D:androidandroid-studio\studiogradlegradle-2.10\bin

这样就配置完了,执行以下这个命令:gradle assembleRelease,看看是不是可以了。

方法2:还是使用gradlew,每次都下载gradle

执行./gradlew 命令后发现显示: Downloading https://services.gradle.org/distributions/gradle-2.14.1-all.zip

说明就开始联网开始下载gradle了,但是无网络的情况下或者在内网情况下根本无法下载,这个时候怎么办?

接下来就是解决这个问题:

如果之前下载过gradle,那么,

对于linux,会在:/home/root/.gradle/wrapper/dists/gradle-2.14.1-all目录下看到很多杂乱的字符串命名的文件夹,打开文件夹就可以找到gradle-2.14.1-all.zip压缩包。

对于windows,会在:C:\Users\Adminstrator\.gradle\wrapper\dists\gradle-2.14.1-all目录下看到很多杂乱的字符串命名的文件夹,打开文件夹就可以找到gradle-2.14.1-all.zip压缩包。

当然也可以外网下下载好gradle-2.14.1-all.zip后放入内网电脑。

不管用上面哪一种方法,把上面得到的gradle-2.14.1.zip压缩包拷贝到项目的gradle/wrapper目录下。

然后把项目里gradle/wrapper/gradle-wrapper.propertis文件的distributionUrl=https\://services.gradle.org/distributions/gradle-2.14.1-all.zip改为distributionUrl=gradle-2.14.1-all.zip

做完上面的步骤,然后在项目目录下执行./gradlew等一系列命令就不会去联网下载gradle了

当然,也可以改成自己的私服地址,如:distributionUrl=https\://192.168.1.1:8081/artifactory/dev/gradle-2.14.1-all.zip

 

https://docs.gradle.org/current/userguide/gradle_wrapper.html

https://www.zybuluo.com/xtccc/note/275168

posted @ 2018-12-01 17:09  大数据从业者FelixZh  阅读(4802)  评论(0编辑  收藏  举报