Gradle Cheat Sheet (13): Importing Gradle Projects

1. 在Android Studio中导入Gradle项目

  首先建立一个简单的任务,建立gradle.build,加入:

task tellJoke << {
    println "What's a build master's favorite black metal band?"
    println "Gradle of Filth!"
}

  然后打开Android Studio,依次点击File > New > Import Project,如图1。接着选择上面建立的gradle.build。

图1

图1

  Android Studio会提示是否使用Gradle Wrapper,如图2,点击OK确定。

图2

图2

  稍等片刻导入完成,切换到Project视图,可以在gradle.build所在的目录下看到自动生成的Gradle Wrapper,以及一些Android Studio的文件,如图3所示。

图3

图3

Gradle增量编译的相关信息保存在.gradle文件夹;Android Studio项目相关文件保存在.iml文件和.idea文件夹;如果build有输出,则位于build文件夹;gradle文件夹存放Gradle Wrapper的jar和properties文件;local.properties文件用于让Gradle定位Android SDK。

2. 执行Gradle Task

  在Android Studio中,可以直接在下方的Terminal窗口运行Gradle任务,如图4。

图4

图4

第一次使用Gradle Wrapper需要为gradlew添加运行权限:

$ chmod +x gradlew

然后就可以运行tellJoke 任务:

$ ./gradlew tellJoke

  除了使用命令行,也可以在右边的Gradle project面板找到tellJoke任务,如图5,双击即可运行。

图4

图5

  再在gradle.build添加一个新任务:

task tellAnotherJoke <<{
    println "How long does it take to master build tools?"
    println "From the Gradle to the grave."
}

添加完后,这个任务并不会自动出现在Gradle project面板,需要手动触发一次Gradle和Android Studio的同步,如点击工具栏的“Sync Project with Gradle Files”,如图6。

图5

图6

之后就会出现tellAnotherJoke了,如图7。

图6

图7

3. 编译代码

  接下来在建立路径\src\main\java\com\udacity\gradle,并在其中新建JokeTeller.java,内容如下:

package com.udacity.gradle;

public class JokeTeller {
    public static void main(String[] args){
        System.out.println("Java. Write once, debug everywere.");
    }
}

  修改build.gradle的内容为:

apply plugin: 'java'
apply plugin: 'application'

mainClassName = "com.udacity.gradle.JokeTeller"

task solutionExecute(type: JavaExec) {
    main = "com.udacity.gradle.JokeTeller"
    classpath = sourceSets.main.runtimeClasspath
}

这里加入了application插件,mainClassName 向application插件指明要运行的主类。接着就可以运行run :

$ ./gradlew run

或者运行build.gradle中定义的solutionExecute :

$ ./gradlew solutionExecute

可以看到输出:

Java. Write once, debug everywere.

 

  本部分的完整代码可以在这里找到。