Gradle 编译学习笔录

  • 
    

    Gradle下载与配置

下载路径: http://www.gradle.org/downloads

配置: 下载完gradle后, 解压缩到你的目录盘, 然后打开gradle的bin目录并将其路径复制, 打开环境变量, 将复制的内容加到Path中。

配置完毕后,可以打开cmd命令工具, 运行gradle –version 如果出现正确的版本号 那么将配置成功 !

  • Gradle简单命令介绍

build 编译命令: 使用cmd命令进入到项目目录下, 然后运行gradle build . 编译成功后可以在build/目下下查看文件

clean 命令: gradle clean 可以清除上一次build后的文件。

check 命令:gradle check 可以使编译用上类似checkstyle文件对项目进行检查。

  • build.gradle 代码详细介绍

.src_container{background-color:#e7e5dc; width:99%; overflow:hidden; margin:12px 0 12px 0 !important; padding:0px 3px 3px 0px}
.src_container .titlebar{ background-color:#d4dfff; border:1px solid #4f81bd; border-bottom:0; padding:3px 24px; margin:0; width:auto; line-height:120%; overflow:hidden; text-align:left; font-size:12px}
.src_container .toolbar{ display:inline; font-weight:normal; font-size:100%; float:right; cursor:hand; color:#00f; text-align:left; overflow:hidden}
.toolbar span.button{ display:inline; font-weight:normal; font-size:100%; cursor:hand; color:#00f; text-align:left; overflow:hidden; cursor:pointer;}
.src_container div.clientarea{ background-color:white; border:1px solid #4f81bd; margin:0; width:auto !important; width:100%; height:auto; overflow:auto; text-align:left; font-size:12px; font-family: "Courier New","Consolas","Fixedsys",courier,monospace,serif}
.src_container ol.mainarea{ padding:0 0 0 52px; margin:0; background-color:#f7f7ff !important}
.number_show{ padding-left:52px !important; list-style:decimal outside !important}
.number_show li{ list-style:decimal outside !important; border-left:1px dotted #4f81bd}
.number_hide{ padding-left:0px !important; list-style-type:none !important}
.number_hide li{ list-style-type:none !important; border-left:0px}
ol.mainarea li{ display:list-item !important; font-size:12px !important; margin:0 !important; line-height:18px !important; padding:0 0 0 0px !important; background-color:#f7f7ff !important; color:#4f81bd}
ol.mainarea li pre{color:black; line-height:18px; padding:0 0 0 12px !important; margin:0em; background-color:#fff !important}
.linewrap ol.mainarea li pre{white-space:pre-wrap; white-space:-moz-pre-wrapwhite-space:-pre-wrap; white-space:-o-pre-wrap; word-wrap:break-word}
ol.mainarea li pre.alt{ background-color:#f7f7ff !important}

隐藏行号 复制代码 ? build.gradle

  1. buildscript {
    
  2.     ##### 大意就是支持java 依赖库管理(maven/ivy),用于项目的依赖。这也是gradle 强力的地方。。。
    
  3.     ## How does Gradle find the files for external dependencies? Gradle looks for them in a repository.
    
  4.     ## A repository is really just a collection of files, organized by group, name and version.
    
  5.     ## Gradle understands several different repository formats, such as Maven and Ivy,
    
  6.     ## and several different ways of accessing the repository, such as using the local file system or HTTP.
    
  7.     repositories {
    
  8.         #### 至少声明一个类型, 如果不用maven的话, 默认的就是这个了。 ####
    
  9.         mavenCentral()
    
  10. 
    
  11.         ## a remote Maven repository ##
    
  12.         maven{
    
  13.             url "http://10.10.20.10:8080/nexus/content/groups/public"
    
  14.         }
    
  15. 
    
  16.     }
    
  17.     ### 依赖什么版本的Gradle编译工具 ###
    
  18.     dependencies {
    
  19.         classpath ‘com.android.tools.build:gradle:0.9.2‘
    
  20.     }
    
  21. }
    
  22. #### 编译项目类型 ####
    
  23. apply plugin: ‘android‘
    
  24. 
    
  25. ### 编译第三方包 ###
    
  26. dependencies {
    
  27.     # 编译所有libs下的第三方包 #
    
  28.     compile fileTree(dir: ‘libs‘, include: ‘*.jar‘)
    
  29.     # 编译一个Lib包 #
    
  30.     compile files("libs\android-support-v4.jar");
    
  31. }
    
  32. ### 配置项 ###
    
  33. android {
    
  34. 
    
  35.     compileSdkVersion 19
    
  36.     buildToolsVersion "19"
    
  37. 
    
  38.     defaultConfig {
    
  39.         minSdkVersion 14
    
  40.         targetSdkVersion 19
    
  41.     }
    
  42.     #### 配置release版本的签名项目以及代码混淆 ####
    
  43.     signingConfigs {
    
  44.         myConfig{
    
  45.             storeFile file("gradle.keystore")
    
  46.             storePassword "gradle"
    
  47.             keyAlias "gradle"
    
  48.             keyPassword "gradle"
    
  49.             ###  配置使用代码混淆  ###
    
  50.             runProguard true
    
  51.             proguardFile ‘proguard-android.txt‘
    
  52.         }
    
  53.     }
    
  54.     #### 编译版本 (release和debug版本) ####
    
  55.     buildTypes{
    
  56.         release {
    
  57.             signingConfig  signingConfigs.myConfig
    
  58.         }
    
  59. 
    
  60.         debug {
    
  61.             packageNameSuffix ".debug"
    
  62.         }
    
  63.     }
    
  64.     #### 配置多渠道  (playstore 与 hiapk) 改变不同渠道的包名 ####
    
  65.     productFlavors {
    
  66.         playstore {
    
  67.             packageName=‘com.youxiachai.androidgradle.playstore‘
    
  68.         }
    
  69.         hiapk {
    
  70.             packageName=‘com.youxiachai.androidgradle.amazonappstore‘
    
  71.         }
    
  72.     }
    
  73. 
    
  74.     sourceSets {
    
  75.         main {
    
  76.             manifest.srcFile ‘AndroidManifest.xml‘
    
  77.             java.srcDirs = [‘src‘]
    
  78.             resources.srcDirs = [‘src‘]
    
  79.             aidl.srcDirs = [‘src‘]
    
  80.             renderscript.srcDirs = [‘src‘]
    
  81.             res.srcDirs = [‘res‘]
    
  82.             assets.srcDirs = [‘assets‘]
    
  83.             jniLibs.srcDirs = [‘libs‘]
    
  84.         }
    
  85.         ### 不同渠道可以应用不同的文件 ###
    
  86.         hiapk {
    
  87.                manifest.srcFile ‘hiapk/AndroidManifest.xml‘
    
  88.            }
    
  89. 
    
  90.            playstore {
    
  91.                manifest.srcFile ‘hiapk/AndroidManifest.xml‘
    
  92.            }
    
  93. 
    
  94.         ### 配置android测试 ###
    
  95.         instrumentTest.setRoot(‘tests‘)
    
  96.     }
    
  97.     ### 使用lint检测 ###
    
  98.     lintOptions {
    
  99.         abortOnError false
    
  100.     }
    
  101. }
    
  102. 
    

.src_container{background-color:#e7e5dc; width:99%; overflow:hidden; margin:12px 0 12px 0 !important; padding:0px 3px 3px 0px}
.src_container .titlebar{ background-color:#d4dfff; border:1px solid #4f81bd; border-bottom:0; padding:3px 24px; margin:0; width:auto; line-height:120%; overflow:hidden; text-align:left; font-size:12px}
.src_container .toolbar{ display:inline; font-weight:normal; font-size:100%; float:right; cursor:hand; color:#00f; text-align:left; overflow:hidden}
.toolbar span.button{ display:inline; font-weight:normal; font-size:100%; cursor:hand; color:#00f; text-align:left; overflow:hidden; cursor:pointer;}
.src_container div.clientarea{ background-color:white; border:1px solid #4f81bd; margin:0; width:auto !important; width:100%; height:auto; overflow:auto; text-align:left; font-size:12px; font-family: "Courier New","Consolas","Fixedsys",courier,monospace,serif}
.src_container ol.mainarea{ padding:0 0 0 52px; margin:0; background-color:#f7f7ff !important}
.number_show{ padding-left:52px !important; list-style:decimal outside !important}
.number_show li{ list-style:decimal outside !important; border-left:1px dotted #4f81bd}
.number_hide{ padding-left:0px !important; list-style-type:none !important}
.number_hide li{ list-style-type:none !important; border-left:0px}
ol.mainarea li{ display:list-item !important; font-size:12px !important; margin:0 !important; line-height:18px !important; padding:0 0 0 0px !important; background-color:#f7f7ff !important; color:#4f81bd}
ol.mainarea li pre{color:black; line-height:18px; padding:0 0 0 12px !important; margin:0em; background-color:#fff !important}
.linewrap ol.mainarea li pre{white-space:pre-wrap; white-space:-moz-pre-wrapwhite-space:-pre-wrap; white-space:-o-pre-wrap; word-wrap:break-word}
ol.mainarea li pre.alt{ background-color:#f7f7ff !important}

.src_container{background-color:#e7e5dc; width:99%; overflow:hidden; margin:12px 0 12px 0 !important; padding:0px 3px 3px 0px}
.src_container .titlebar{ background-color:#d4dfff; border:1px solid #4f81bd; border-bottom:0; padding:3px 24px; margin:0; width:auto; line-height:120%; overflow:hidden; text-align:left; font-size:12px}
.src_container .toolbar{ display:inline; font-weight:normal; font-size:100%; float:right; cursor:hand; color:#00f; text-align:left; overflow:hidden}
.toolbar span.button{ display:inline; font-weight:normal; font-size:100%; cursor:hand; color:#00f; text-align:left; overflow:hidden; cursor:pointer;}
.src_container div.clientarea{ background-color:white; border:1px solid #4f81bd; margin:0; width:auto !important; width:100%; height:auto; overflow:auto; text-align:left; font-size:12px; font-family: "Courier New","Consolas","Fixedsys",courier,monospace,serif}
.src_container ol.mainarea{ padding:0 0 0 52px; margin:0; background-color:#f7f7ff !important}
.number_show{ padding-left:52px !important; list-style:decimal outside !important}
.number_show li{ list-style:decimal outside !important; border-left:1px dotted #4f81bd}
.number_hide{ padding-left:0px !important; list-style-type:none !important}
.number_hide li{ list-style-type:none !important; border-left:0px}
ol.mainarea li{ display:list-item !important; font-size:12px !important; margin:0 !important; line-height:18px !important; padding:0 0 0 0px !important; background-color:#f7f7ff !important; color:#4f81bd}
ol.mainarea li pre{color:black; line-height:18px; padding:0 0 0 12px !important; margin:0em; background-color:#fff !important}
.linewrap ol.mainarea li pre{white-space:pre-wrap; white-space:-moz-pre-wrapwhite-space:-pre-wrap; white-space:-o-pre-wrap; word-wrap:break-word}
ol.mainarea li pre.alt{ background-color:#f7f7ff !important}

2. http://www.cnblogs.com/youxilua/archive/2013/05/20/3087935.html

3. https://github.com/Goddchen/Android-Gradle-Examples

Maven 使用:

  • 参考资料

地址: http://jingyan.baidu.com/article/60ccbceb01de4d64cbb19756.html

Nexus 搭建私服:

  • 参考资料:

地址: http://www.blogjava.net/ldwblog/archive/2013/11/19/406529.html

  • 版本选择:

JDK6 选择nexus 2.6一下版本, 否则启动不了。 nexus2.6以上版本需要JDK7

Gradle 编译学习笔录

时间: 2024-11-06 16:34:20

Gradle 编译学习笔录的相关文章

Android Gradle编译学习日记之二(使用 Gradle 编译 Eclipse,引入依赖资源以及迁移 Android Studio)

大家如果喜欢我的博客,请关注一下我的微博,请点击这里(http://weibo.com/kifile),谢谢 转载请标明出处(http://blog.csdn.net/kifile),再次感谢 Android Gradle编译学习日记(基于 Android Studio 1.0): Android Gradle编译学习日记之一(搭建 Gradle 环境以及编译 Android 应用) 在上一篇文章中,我简单介绍了一个 Gradle 环境变量的搭建,以及如何使用 Gradle 编译 Android

Android Gradle编译学习日记之一(搭建 Gradle 环境以及编译 Android 应用)

大家如果喜欢我的博客,请关注一下我的微博,请点击这里(http://weibo.com/kifile),谢谢 转载请标明出处(http://blog.csdn.net/kifile),再次感谢 Google 在最近正式推出了 Android Studio 1.0版本,开发者首页的默认开发工具也已经更改成了 Android Studio,我想我们是时候全面转型到 Android Studio 开发了. 其实抛开界面因素,Android Studio 与 Eclipse ADT 构建 Android

gradle编译出错:Execution failed for task ':app:compileTestDebugJava'.

今天更新了android studio,从0.5.3升级到0.6.1版本,结果在IDE中编译时没有问题,但是在命令行时编译就会出现以下错误: :app:compileTestDebugJava FAILED FAILURE: Build failed with an exception. * What went wrong: Execution failed for task ':app:compileTestDebugJava'. > No signature of method: com.a

6个技巧加速你的gradle编译

近期我们都在讨论build系统,我们看了一些技巧能够让你的Maven build更快. 结论和反映都势不可挡.由于我们提供的技巧,很多其它的人都非常高兴能加快他们完毕自己的项目.如今,让我们看一下怎么处理gradle编译项目. 编译的项目一般都是标准编译的,也都是独一无二的.差点儿全部的项目都添加了其自身的复杂性. 全部的东西都不同可是有一个东西是相同的:编译会占用你的时间,加快编译会影响你的开发效率,让你的项目工作更加顺畅. 事不宜迟,让我们来看看什么是Gradle.和它的理念: 加速Grad

React Native Android Gradle 编译流程浅析

[工匠若水 http://blog.csdn.net/yanbober 未经允许严禁转载,请尊重作者劳动成果.私信联系我] 1 背景 前面已经发车了一篇<React Native Android 从学车到补胎和成功发车经历>,接着就该好好琢磨一下 React Native 周边了,没看第一篇的可以先去看看:这里我们先从 React Native 的 Android 编译来简单揭晓一下 React Native 在集成的过程中到底干了哪些不可告人的坏事:由于我们项目准备以 Gradle 形式接入

Gradle 编译javaproject 小试

1.安装环境 在http://www.gradle.org 下载最新版本号的gradle.然后解压,将bin文件夹写入环境变量, 然后在终端输入 gradle,假设出现例如以下信息就说明成功安装了. ? 2.project配置 在eclispse中建立一个普通的javaproject,在project文件夹下创建一个build.gradle文件. ? build.gradle文件里写入 ? 在终端中敲入 gradle run,就能看到执行结果了. ? 这就是最简单的gradle 编译,执行 ja

Gradle入门学习---认识buildeTypes和dependencies

Gradle是Android Studio默认的构建工具,如果是基本的APP开发,不会涉及到Gradle太多内容,毕竟它的诞生就不是专为Android服务的. 日常开发需要涉及到使用Gradle的场景相当有限,比较频繁的就是对应库,如jar,.so文件的导入,如果应用本身方法数比较多,尤其是导入太多第三方库就容易出现这个问题,就需要用到MultiDex的相关内容,如果需要在编译的时候区分debug和release等版本,是否混淆或者自动打包等,这些都会涉及到Gradle的编写,但网上都有现成的例

理解使用Gradle编译打包Android apk

本篇的目的:理解Gradle构建过程,解读Android Gradle插件的配置 阅读本文一定是要使用过Gradle生成apk,文中不会讲如何安装运行Gradle,如有需要可先看文末的参考文章. APK包是一个ZIP压缩包,从Java源代码.资源文件到生成这个APK,经过了编译打包一系列特定的过程,这个过程可以参看<使用Ant打包Android应用--apk生成过程>,也可以从自己的旧版SDK文档(/docs/tools/building/index.html)中找到.而这一系列特定的过程,重

Android之JNI:Android Studio使用Gradle编译C/C++源码

使用Gradle编译C/C++源码步骤 申明NDK工具类,内部定义native方法 package com.coca.firstdemo; /** * Created by Administrator on 2016/6/6. */public class JniShareUtils { public native String getLogCount(String params);} 定位至项目的app文件夹,调用javah命令生成.h文件: javah com.coca.firstdemo.