`
aigo
  • 浏览: 2645622 次
  • 性别: Icon_minigender_1
  • 来自: 宜昌
社区版块
存档分类
最新评论

使用Gradle构建项目

 
阅读更多

本文由 ImportNew - 唐尤华 翻译自 spweblog.blogspot.com。如需转载本文,请先参见文章末尾处的转载要求。

在最近的Google IO大会上我注意到Android Studio开发环境引起了大家的关注。我发现Eclipse经常会变慢而且健壮性不强,所以一个新的替代Android IDE是最受欢迎的消息。在仔细关注这次的发布时,我发现另一个亮点是基于Gradle的Android项目新的构建系统。因此我决定更仔细地了解Gradle。

 

下面列举了一些使用Gradle构建Android项目的好处:

 

- 在IDE环境和命令行下使用同一个构建系统

- 改进的依赖关系管理

- 更容易地集成到自动化构建系统

 

一个额外的好处来自Android函数库包格式“aar”格式。以前,Android函数库通常需要被导入到IDE以此将App需要的资源加入编译。但是现在的Android函数库可以被直接包含,与“jar”文件被Java项目包含的方式类似。这项功能虽然出现已久,但确实非常受欢迎。

 

下面是我一个项目的gradle构建脚本:

buildscript {
    //定义一些项目需要的JAR函数库
    LIBS_DIR = "../../../libs"
 
    //需要从maven中央库得到gradle的android插件
    repositories {
        mavenCentral()
    }
 
    dependencies {
        classpath 'com.android.tools.build:gradle:0.4.2'
    }
}
 
//声明项目是一个android构建
apply plugin: 'android'
 
dependencies {
    //同时用本地maven库查找依赖
    repositories {
        mavenLocal()
    }
 
    //下面是一些app需要的jar文件
    compile files("${LIBS_DIR}/hiscore/hiscore.jar")
    compile files("${LIBS_DIR}/GoogleAnalytics/libGoogleAnalytics.jar")
 
    //这是一个我存放在本地maven仓库(使用“aar”格式)的android函数库
    compile ('com.mopub.mobileads:mopub-android-sdk:unknown')
}
 
//android构建的项目定义
android {
    compileSdkVersion 15
    buildToolsVersion "17.0.0"
 
    //下面的代码路径不是推荐的新项目结构
    //我仍然使用的Eclipse风格结构
    sourceSets {
        main {
            manifest.srcFile 'AndroidManifest.xml'
            java.srcDirs = ['src']
 
            resources.srcDirs = ['src']
            aidl.srcDirs = ['src']
 
            renderscript.srcDirs = ['src']
 
            res.srcDirs = ['res']
            assets.srcDirs = ['assets']
        }
 
        instrumentTest.setRoot('tests')
    }
 
    //声明创建一个带签名的发布版本细节
    signingConfigs {
        release {
            storeFile file("../keys/android.keystore")
            storePassword "######"
            keyAlias "######"
            keyPassword "######"           
        }
    }
 
    //声明此发布构建在签名之前需要运行proguard
    buildTypes {
        release {
            runProguard true
            proguardFile getDefaultProguardFile('proguard-android.txt')
            proguardFile 'proguard.cfg'
            signingConfig signingConfigs.release
        }    
    }    
}

 

 

 

从命令行构建app可以运行下面的命令:

gradle assembleDebug    #debug构建
gradle assembleRelease  #release构建

 

 

我以前用过Maven做了几个项目,发现用Maven来管理项目配置非常有用,尤其是在依赖管理方面。但是我发现Maven在某些情况下缺少灵活性,你不得不为某些特殊的情况进行自定义。理论上你可以编写自己的Maven插件,但实践起来大多数用户不会这么做通常他们会依赖现有的插件。所以我经常使用Ant而不是Maven,因为它在处理项目特殊操作,比如拷贝或修改代码文件时更加灵活。

 

Gradle看上去在这两方面都做得很好:通过插件为绝大多数的常用情况提供了全面支持,管理依赖关系方面与Maven做得同样好;同时也提供了良好的灵活性,在需要修改构建脚本时可以自由地定制。

 

我相信Gradle是构建Android应用的趋势。Gradle还提供了很多其他很赞的特性,例如构建“佐料(flavors)”等,本文没有涉及。我相信Google采用Gradle是在Android发展上的一个重要进步。现在,我会将其他的项目都转为使用Gradle。

分享到:
评论

相关推荐

    gs-gradle, 使用Gradle构建Java项目.zip

    gs-gradle, 使用Gradle构建Java项目 标记项目gradle目录你将构建什么。你需要什么。设置了项目项目。安装 Gradle找出Gradle可以做什么。构建Java代码声明依赖项使用Gradle包装程序生成项目。摘要文件另请参

    使用Gradle 构建spring Boot工程系列项目源码(配合第五篇文章)

    本资源包"使用Gradle构建Spring Boot工程系列项目源码"是针对一系列教程的配套源代码,旨在帮助开发者深入理解如何利用Gradle有效地构建Spring Boot应用程序。通过分析这些源码,我们可以学习到以下关键知识点: 1....

    基于gradle构建的项目

    **基于Gradle构建的项目详解** Gradle是一种现代的、强大的构建自动化工具,它以其灵活性、性能优化和高度可扩展性赢得了开发者的喜爱。相比于传统的Maven,Gradle提供了更丰富的配置选项,允许开发者根据项目的...

    Gradle构建(war) web项目示例

    我们将围绕“Gradle构建(war) web项目示例”这一主题展开,讨论Gradle的基本概念,构建过程,以及如何配置和运行项目。 首先,理解Gradle的核心概念至关重要。Gradle基于Groovy语言,采用领域特定语言(DSL)进行...

    eclipse下gradle多模块项目构建

    总的来说,Eclipse下使用Gradle构建多模块项目,能够充分利用Gradle的灵活性和强大功能,同时借助Eclipse的IDE优势,提供良好的开发体验。这种方式让团队能够更高效地管理和维护复杂的项目结构,提升开发效率。在...

    gradle 构建工具.zip

    使用Gradle构建项目通常涉及以下步骤: 1. **安装Gradle**:在本地安装Gradle环境,可以通过官方网站下载对应版本的Gradle。 2. **创建项目**:使用`gradle init`命令初始化一个新的Gradle项目,可以选择项目类型和...

    gradle构建测试 单项目 多项目 非约定结构

    gradle 构建测试 单项目 多项目 非约定结构

    simple-java-project:如何使用Gradle构建项目的源代码-java project source code

    simple-java-project:如何使用Gradle构建项目的源代码

    Gradle构建 Java项目示例

    在IT行业中,构建工具是开发过程中的重要环节,...总的来说,Gradle为Java项目提供了强大且灵活的构建支持,使得开发者能够高效地管理和构建项目。通过理解上述知识点,你可以更好地掌握Gradle构建Java项目的实践操作。

    使用Gradle构建简单Java程序

    我们将使用Gradle来构建这个项目,展示其易用性和效率。 1. **设置Gradle项目** 要开始构建Java项目,首先需要创建一个目录结构,这通常包括`src/main/java`目录来存放源代码,以及一个`build.gradle`文件来定义...

    在IntelliJ IDEA 中使用 Gradle JavaFx

    要在IntelliJ IDEA中使用Gradle构建JavaFX应用,首先需要确保你的IDE安装了Gradle插件。接下来,我们将详细讲解这个过程: 1. **创建新项目**: - 打开IntelliJ IDEA,选择“新建”项目,然后选择“Gradle”。 - ...

    基于Gradle构建的JavaWeb项目

    **基于Gradle构建的JavaWeb项目** 在现代的软件开发中,构建工具是不可或缺的一部分,它们帮助开发者自动化构建、测试和部署项目。本项目利用了Gradle作为构建工具,结合IntelliJ IDEA(IDEA)这个强大的Java集成...

    用Gradle构建和测试项目

    标题“用Gradle构建和测试项目”指出了文章的主题是关于Gradle这一强大的构建自动化工具。Gradle是一个基于Apache Ant和Apache Maven概念的项目自动化构建工具。与Maven相比,Gradle拥有更加灵活的构建脚本,它使用...

    gradle资料

    #### 使用Gradle构建项目 Gradle通过`build.gradle`文件来配置构建过程。该文件通常包含以下内容: - 定义项目的依赖关系。 - 配置构建任务。 - 设置构建输出目录等。 例如,对于一个简单的Java项目,`build....

    job-dsl-gradle-example, 使用Gradle构建和测试的作业DSL项目示例.zip

    job-dsl-gradle-example, 使用Gradle构建和测试的作业DSL项目示例 工作 DSL Gradle示例使用Gradle构建和测试的作业 DSL 项目示例。 签出这里演示文稿这里示例的演练。文件结构.├── src│ ├── jobs # DSL ...

    java源码无lib文件夹-gs-gradle:使用Gradle构建Java项目::了解如何使用Gradle构建Java项目

    项目以进行构建。 为了保持对 Gradle 的关注,现在让项目尽可能简单。 在src/main/java/hello目录中,您可以创建您想要的任何 Java 类。 为简单起见并与本指南的其余部分保持一致,Spring 建议您创建两个类: Hello...

    idea+gradle构建spring源码环境.docx

    2. Gradle 是一个基于 Groovy 语言的构建工具,用于构建和管理项目依赖项。 3. 在 Spring 源码目录下,有一个名为 `gradle` 的目录,其中包含了 `wrapper` 和 `gradle-wrapper.properties` 文件。 4. Gradle 的本地...

    gradle8.2版本(bin+all)

    **使用Gradle构建项目** Gradle支持多种构建脚本语言,包括Groovy和Kotlin DSL。一个基本的`build.gradle`文件可能如下所示: ```groovy plugins { id 'java' } group 'com.example' version '1.0-SNAPSHOT' ...

Global site tag (gtag.js) - Google Analytics