码云推出 Android 自动构建,代码托管独此一家

   2016-08-30 0
核心提示:duang duang duang ……各位看官,开源中国码云 Android 项目构建新功能上线啦!!码云支持的项目中, ant/maven/gradle的配置文件支持脚本。而每个人写出的构建脚本千变万化,因此码云对支持的项目设置做了一些规范。本次给大家带来的新功能内容如下:一、码

duang duang duang ……

各位看官,开源中国码云 Android 项目构建新功能上线啦!!

码云支持的项目中, ant/maven/gradle的配置文件支持脚本。而每个人写出的构建脚本千变万化,因此码云对支持的项目设置做了一些规范。本次给大家带来的新功能内容如下:

一、码云Android项目构建注意事项

1、ant项目

  • build.xml必须位于项目根目录。

2、maven项目

  • pom.xml必须位于项目根目录。

3、gradle项目

  • 由于gradle的配置灵活,我们做了一些规范,并且增加了一下机制来处理签名问题。

二、码云Android项目构建示例

android-app 项目目录结构(以osc/android-app为例)

码云推出 Android 自动构建,代码托管独此一家

gradle 需要的配置和脚本有:

  • gradlew/gradlew.bat/build.gradle => 构建脚本。

  • settings.gradle => 子项目。

  • app/build.gradle => 构建配置(设置签名, debug/release, 依赖等等)。

  • gradle.properties(优先于 config/gradle.properties, 当 gradle.properties 不存在时,则尝试读取 config/gradle.properties) => 用户设置 jdk/gradle, 可定义变量。

  • gradle/wrapper/gradle-wrapper.properties => 构建使用的 gradle 的版本(请使用gradle 2.0以上版本)。

1、关于gradle构建流程:

  1. 判断是否是标准的 gradle 项目。

  2. 读取 settings.gradle 文件,找到子项目的路径。

  3. 读取 gradle.properties 或 config/gradle.properties 文件(确定 keystore。如果 keystore 使用私有项目地址,则使用当前用户身份下载。如果没有设置或者不存在私有项目地址及权限错误,则生成随机签名用来构建)。

  4. 读取 gradle/wrapper/gradle-wrapper.properties 文件, 确定使用的 gradle 版本,下载并解压。

  5. 进入子项目目录。如果没有定义,即为项目根目录。

  6. 读取子项目中 build.gradle 文件,修改其中的 signingConfigs section 和 buildTypes section,以确保使用正确的签名和构建版本。

  7. 构建成功,上传apk。

2、关于setting.gradle:

码云推出 Android 自动构建,代码托管独此一家

3、关于config/gradle.properties:

码云推出 Android 自动构建,代码托管独此一家 gradle 使用的 gradle.properties 必须位于项目根目录,为了不让开发者本地项目中的 gradle.properties 上传到线上仓库, 可将该文件加入到 .gitignore 中,然后在 config/gradle.properties 配置 android 构建需要的 keystore 信息,配置可参考 上图。

私有的 keystore 存储在私有仓库,从而保证了签名文件的安全。如果用户根目录下存在 gradle.properties 文件,则不 再读取 config/gradle.properites。注明:osc/android-app 项目中 config/gradle.properties 使用了绝对路径,用户可设置如下:

RELEASE_STORE_FILE=http://git.oschina.net/your/private-project/blob/ref/path-to-keystore

4、关于app/build.gradle:

码云推出 Android 自动构建,代码托管独此一家

签名设置也可采用如下形式:

//signing files settings
signingConfigs {
    debug {        #相对路径且存在;否则使用Git@OSC的keystore(绝对路径构建失败)
        storeFile file("your_secret.keystore")
        storePassword RELEASE_STORE_PASSWORD
        keyAlias RELEASE_KEY_ALIAS
        keyPassword RELEASE_KEY_PASSWORD
    }
    release {        #网路地址存在;否则使用Git@OSC的keystore
        storeFile file("http://zql.org/zouqilin/gradle_keystore/blob/master/git-gradle-key.keystore")
        storePassword RELEASE_STORE_PASSWORD
        keyAlias RELEASE_KEY_ALIAS
        keyPassword RELEASE_KEY_PASSWORD
    }    test {        #混合形式
        storeFile file("http://zql.org/zouqilin/gradle_keystore/blob/master/git-gradle-key.keystore")
        storePassword "oschina123"
        keyAlias  "alias_name"
        keyPassword "oschina123"
    }
}

三、码云 Android 项目使用步骤

  1. 设置项目的语言为Android。

    码云推出 Android 自动构建,代码托管独此一家
  2. 进入项目首页会出现【生成apk】按钮。

    码云推出 Android 自动构建,代码托管独此一家
  3. 点击【生成apk】按钮,进入构建页面(使用当前用户的身份拉取私有仓库中的 keystore )。

    码云推出 Android 自动构建,代码托管独此一家

【注意】:如果想使用项目中提供的 keystore(私有仓库地址),请选中该复选框! 码云推出 Android 自动构建,代码托管独此一家

  1. 构建过程。

    码云推出 Android 自动构建,代码托管独此一家
  2. 构建完成(提供 apk 下载)。 码云推出 Android 自动构建,代码托管独此一家

  3. 生成随机签名(提供签名信息和 keystore 下载,项目中未提供签名,为方便测试,码云为每个项目生成了随机的签名)。

    码云推出 Android 自动构建,代码托管独此一家

巴拉巴拉……终于说完了~

小编觉得吧,这些通通都不是重点,赶紧去玩玩 Android 项目构建功能才是重点!赶紧的,点击osc/android-app 开始玩吧!

如果有问题,请反馈至 oschina/git-osc Issues ,非常感谢您的支持!

 
反对 0举报 0 评论 0
 

免责声明:本文仅代表作者个人观点,与乐学笔记(本网)无关。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
    本网站有部分内容均转载自其它媒体,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责,若因作品内容、知识产权、版权和其他问题,请及时提供相关证明等材料并与我们留言联系,本网站将在规定时间内给予删除等相关处理.

  • 手动创建基于 Gradle 的 Android Project,也可
    Build_Gradle_ProjectAndroid Studio中的Project采用Gradle脚本来创建。而对于早期的Android Project,如Eclipse ADT版本的项目,需要手动创建Gradle脚本,相当于向Android Studio指明自己的Project的基本架构。一个最基本的Android Project for Gradle,只需
  • ShowJoy开发记录
    命令输入位置:AndroidStudio-Terminalgradle –stop标题中的命令错误:应该为gradle --stop,注意是两个-符号!!!作用:可以快速停止 gradle 启动的进程。gradle shopandroid:dependenciesdependencies.txt解释shopandroid:想要查找依赖关系的模块名(Mod
    11-03 GradleLinux
  • 每日一博|深入理解 gradle 编译- Android 基础篇
    每日一博|深入理解 gradle 编译- Android 基础
    9/27/2016 1:28:27 PM深入理解gradle编译-Android基础篇导读Gradle基于Groovy的特定领域语言(DSL)编写的一种自动化建构工具,Groovy作为一种高级语言由Java代码实现,本文将对Gradle一些常见问题进行一一介绍: 理解Gradle与android app之间的关系,以及Gra
  • [原]Error:exception during working with external system:
    [原]Error:exception during working with exte
    2年多没写博客了,也没有处理任何博客的问题,主要是这两年事情实在太多了,有时候想写来着,但是事情一多又耽搁了,原来想写的gradle专题也啥都没写。这两年来android studio的变化也很大,所以以前写的一些内容可能在那个时候可以解决问题,但是随着android
  • 彻底掌握 Android 多分包技术 MultiDex - 用 Ant 和 Gradle 分别构建(一)
    彻底掌握 Android 多分包技术 MultiDex - 用 An
    Andrid多分包技术在大型项目编译方面起着至关重要的作用,作为一个高级开发者我们有必要掌握此技能,现在我带领大家统一学习此项技能,并教会大家分别使用Ant和Gradle构建。什么是DexDex是Dalvik VM executes的全称,即Android Dalvik执行程序。在Android中单
  • [原]Android Studio, gradle plugin is too old or set ANDROID_DAILY_OVERRIDE
    [原]Android Studio, gradle plugin is too old
    早上打开Android Studio,忽然报了个错,说gradle plugin版本过低,让更新或者设置ANDROID_DAILY_OVERRIDE环境变量:日志如下: INFO - ls.idea.gradle.GradleSyncState - Sync with Gradle for project ‘advance’ failed: Plugin is too old, please updat
  • Android App 开发环境和线上环境共存的 gradle
    前段时间考虑过一个问题:例如我在公司负责产品 A 的开发,但是我又需要在下班后使用公司产品怎么办?一般公司的服务端都会区分线上和线下环境,在开发时使用开发的环境以免脏数据污染线上的环境,而下班后每次都卸载重装的话感觉又有些蛋疼,今天想到可以用
  • AndroidStudio使用教程(四):Gradle基础
    AndroidStudio使用教程(四):Gradle基础
    这篇文章主要介绍了Android Studio使用教程(四):Gradle基础,本文讲解了什么是Gradle、安装Gradle、Gradle 基本概念等内容,需要的朋友可以参考下
  • AndroidStudio使用教程(五):Gradle命令详解和导入第三方包
    AndroidStudio使用教程(五):Gradle命令详解
    这篇文章主要介绍了Android Studio使用教程(五):Gradle命令详解和导入第三方包,本文讲解了导入Android Studio、Gradle常用命令等内容,需要的朋友可以参考下
  • AndroidStudio使用教程(六):Gradle多渠道打
    这篇文章主要介绍了Android Studio使用教程(六):Gradle多渠道打包,本文讲解了友盟多渠道打包、assemble结合Build Variants来创建task、完整的gradle脚本等内容,需要的朋友可以参考下
点击排行