ZyLiu's Blog

Hello World, Gradle

字数统计: 649阅读时长: 2 min
2018/11/14 Share

前言:为了跑通gradle,差点没费死劲,本文记录配置gradle过程中踩过的坑

gradle是什么,为什么要配置gradle

Gradle是一个基于JVM的构建工具,是一款通用灵活的构建工具,支持maven,Ivy仓库,支持传递性依赖管理,而不需要远程仓库或者是pom.xml和ivy.xml配置文件,基于Groovy,build脚本使用Groovy编写。

以上内容来自百度百科,对于我来说,将编译好的so文件与java代码打包成apk文件必须使用gradle,对此我暂时只知道这么多。

gradle安装

下载,解压,配置环境变量,无需多言。
值得注意的一点是GRADLE_USER_HOME这个环境变量可以修改缓存文件的位置,缓存文件还是很重要的,我被它坑惨了。
还有一些别的方法可以修改缓存文件位置,详见:https://blog.csdn.net/yanzi1225627/article/details/52024632

下载依赖项

如果你是第一次使用gradle构建项目,需要下载很多依赖项。在执行这一步之前,首先要修改项目文件夹下local.propertiesbuild.gradle两个文件。

local.properties – 本地ndk位置

ndk.dir修改为本地ndk存放的位置,将sdk.dir修改为android-sdk存放的位置。

build.gradle – gradle仓库

如果不修改这个文件,网上说下载速度很慢,我自己的体验是直接报错,无法下载。
将gradle仓库修改为国内的阿里云地址,下载速度嗖嗖的,下面为我的build.gradle文件内容:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
// Top-level build file where you can add configuration options common to all sub-projects/modules.

buildscript {

repositories {
def REPOSITORY_URL = 'http://maven.aliyun.com/nexus/content/groups/public/'
all { ArtifactRepository repo ->
if(repo instanceof MavenArtifactRepository){
def url = repo.url.toString()
if (url.startsWith('https://repo1.maven.org/maven2') || url.startsWith('https://jcenter.bintray.com/')) {
remove repo
}
}
}
maven {
url REPOSITORY_URL
}
//google()
jcenter()
}

dependencies {
classpath 'com.android.tools.build:gradle:2.1.2'

// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}
}

allprojects {
repositories {
def REPOSITORY_URL = 'http://maven.aliyun.com/nexus/content/groups/public/'
all { ArtifactRepository repo ->
if(repo instanceof MavenArtifactRepository){
def url = repo.url.toString()
if (url.startsWith('https://repo1.maven.org/maven2') || url.startsWith('https://jcenter.bintray.com/')) {
remove repo
}
}
}
maven {
url REPOSITORY_URL
}
//google()
jcenter()
}
}

task clean(type: Delete) {
delete rootProject.buildDir
}

在下载时出现Could not create plugin of type 'AppPlugin'错误,可以先把gradle缓存目录清空,我被这个问题整了两天。

gradle使用代理

如果你不想用国内的镜像地址,可以翻墙走代理,方法为修改gradle.properties文件,添加:

1
org.gradle.jvmargs=-DsocksProxyHost=127.0.0.1 -DsocksProxyPort=1080
CATALOG
  1. 1. gradle是什么,为什么要配置gradle
  2. 2. gradle安装
  3. 3. 下载依赖项
    1. 3.1. local.properties – 本地ndk位置
    2. 3.2. build.gradle – gradle仓库
    3. 3.3. gradle使用代理