Gradle_配置离线打包环境

版权声明:本博客主要记录学习笔记和遇到的一些问题解决方案,转载请注明出处! https://blog.csdn.net/u010982507/article/details/82866445

应用场景

通过后台服务配置gradle打包环境,因为服务工程要放到服务器Linux上,是无法连接外网的,所以需要配置Android的离线打包。

配置离线环境

一、 gradle-wrapper.properties配置

  • 完整代码配置
#Sat Sep 29 10:09:36 CST 2018
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
#distributionUrl=https\://services.gradle.org/distributions/gradle-4.1-all.zip
# 配置本地gradle压缩包,要提前从网上下载好gradle全量包
distributionUrl=file\:///D:/AgreeWorkSpace/android/PackageServer/library/gradle-4.1-all.zip 
  • distributionBase属性和distributionPath属性
    distributionBasedistributionPath组合在一起,是解压gradle-4.1-bin.zip之后的文件的存放位置。distributionPath是distributionBase指定的目录下的子目录。解压后在windows下是C:\Users\<user_name>\.gradle\wrapper\dists
  • zipStoreBase属性和zipStorePath属性
    distributionBasedistributionPath组合在一起,是解压gradle-3.1-bin.zip之后的文件的存放位置。
    distributionPathdistributionBase指定的目录下的子目录。
    下载位置可以和解压位置不一样。
    zipStoreBasedistributionBase有两种取值:GRADLE_USER_HOMEPROJECT
    其中,GRADLE_USER_HOME表示用户目录。
    在windows下是%USERPROFILE%/.gradle,例如C:\Users\<user_name>\.gradle\
    在linux下是$HOME/.gradle,例如~/.gradle
    PROJECT表示工程的当前目录,即gradlew所在的目录。
    相关源码位置gradle-4.1-src\gradle-4.1\subprojects\wrapper\src\main\java\org\gradle\wrapper\PathAssembler.java
  • distributionUrl属性
    1、distributionUrl是要下载的gradle的地址distributionUrl=https\://services.gradle.org/distributions/gradle-4.1-all.zip,使用哪个版本的gradle,就在这里修改。下载后保存的路径是C:\Users\admin\.gradle\wrapper\dists\gradle-4.1-all,如果之前已经下载过,就不会再去网上下载。
    2、gradle的3种版本:
    1)gradle-xx-all.zip是完整版,包含了各种二进制文件,源代码文件,和离线的文档。例如,https://services.gradle.org/distributions/gradle-4.1-all.zip
    2)gradle-xx-bin.zip是二进制版,只包含了二进制文件(可执行文件),没有文档和源代码。例如,https://services.gradle.org/distributions/gradle-4.1-bin.zip
    3)gradle-xx-src.zip是源码版,只包含了Gradle源代码,不能用来编译你的工程。例如,https://services.gradle.org/distributions/gradle-4.1-src.zip
    参考文章:https://blog.csdn.net/u013553529/article/details/55011602?utm_source=copy
    3、如果采用离线打包,这里就需要改成本地下载好的gradle路径,如:
    distributionUrl=file\:///D:/AgreeWorkSpace/android/PackageServer/library/gradle-4.1-all.zip,第一次打包运行的时候,会把gradle-4.1-all.zip解压到C:\Users\admin\.gradle\wrapper\dists\gradle-4.1-all路径下,然后生成一串随机数字或字母的目录。注意Windows下和Linux下的路径配置:
    windows下配置
    distributionUrl=file\:///D:/AgreeWorkSpace/android/PackageServer/library/gradle-4.1-all.zip
    Linux下配置
    distributionUrl=file\:/home/abs/Android/library/gradle/gradle-4.1-all.zip

二、配置android gradle plugin

  • android gradle plugin和gradle plugin区分
    android gradle plugin和gradle plugin是不同的概念,android gradle plugin指的是根目录下build.gradle文件配置的gradle插件版本依赖。例如:
buildscript {
    repositories {
     	......
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:3.0.1'
    }
}
  • android gradle plugin和gradle plugin版本对应
    其中com.android.tools.build:gradle:3.0.1gradle-wrapper.properties中配置的gradle版本是相互对应的,如下图所示:参考链接:https://developer.android.google.cn/studio/releases/gradle-plugin#
    在这里插入图片描述
  • repositories配置
    com.android.tools.build:gradle:3.0.1默认加载的是联网状态的jcenter()库,而离线的时候是无法加载jcenter()库的,所以工程中所有的repositories都要配置成本地仓库。Android gradle plugin本地仓库在Android studio安装目录下的Android Studio\gradle\m2repository中,或者在AndroidSDK的extras目录下也有这个库,但是好像缺少插件。这里我们使用Android Studio下的库,可以把这个库拷贝到Android工程的gradle目录下,这样我们可以配置相对路径,如下所示:
repositories {
    maven{
        url 'gradle/m2repository'
    }
    google()
}

参考文章:https://blog.csdn.net/u012123160/article/details/73275912

执行打包命令

  • Windows下
    gradlew build
  • Linux下
    ./gradlewsh gradlew

猜你喜欢

转载自blog.csdn.net/u010982507/article/details/82866445
今日推荐