1、ant项目

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

2、maven项目

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

3、gradle项目

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

二、码云Android项目构建示例

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

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:

3、关于config/gradle.properties:

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

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

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

4、关于app/build.gradle:

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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
//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。

  2. 进入项目首页会出现【生成apk】按钮。

  3. 点击【生成apk】按钮,进入构建页面(使用当前用户的身份拉取私有仓库中的 keystore )。

【注意】:如果想使用项目中提供的 keystore(私有仓库地址),请选中该复选框!

  1. 构建过程。

  2. 构建完成(提供 apk 下载)。

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

码云Android项目构建注意事项(转载)的更多相关文章

  1. 2017 年度码云新增项目排行榜 TOP 50,为它们打“call”

    2017 年度码云新增项目排行榜 TOP 50 正式出炉 !2017 结束了,我们来关注一下这一年里码云上新增的最热门的开源项目吧.此榜单根据 2017 年在码云上新增开源项目的 Watch.Star ...

  2. 使用Git将项目托管到码云及从码云导入项目到本地

    前言 码云+Git+IntellJ IDEA 欢迎转载,请注明作者和出处哦☺ Git 的安装及使用的教程 ​​​​ 最好不要在官网下载,官网下载要vpn而且速度还很慢 . 推荐在 https://gi ...

  3. 2018 年度码云热门项目排行榜 TOP 10

    2016 年度码云热门项目排行榜 TOP 10 是通过开源项目2016年在码云上的 Watch.Star.Fork 数量来评定的榜单.码云平台发展至今,涌现了越来越多优秀的开源项目,越来越多的开源作者 ...

  4. 在Windows下使用Git+TortoiseGit+码云管理项目代码

    1.      安装Git 下载地址:点击打开链接 安装指南:默认选项即可 2.      安装TortoiseGit 下载地址:点击打开链接 安装指南:点击打开链接 3.      在码云创建账号, ...

  5. 谷歌开源项目Chromium的源码获取与项目构建(Win7+vs10/vs13)

    转自:http://blog.csdn.net/kuerjinjin/article/details/23563059 从12年那会儿开始获取源码和构建chromium项目都是按照那时候的官方要求用w ...

  6. 使用TortoiseGit+码云管理项目代码

    1.下载安装msysgit. 2.下载安装tortoisegit. 3.创建ssh密钥. 开始–所有程序–TortoiseGit–PuTTYgen 生成方法:点击“Generate”后,鼠标在key下 ...

  7. idea中git从码云克隆项目到本地

    1.首先需要在操作系统上安装Git分布式管理系统 此处自行百度............. 2.在Intellij IDEA中配置Git 打开Settings(File-->Settings) - ...

  8. eclipse导入码云-GIT项目

    1.首先找到项目源码地址我随便找到一个git地址 :https://gitee.com/mingSoft/MCMS 2.打开eclipse空白处右键导入项目搜索git. 3.将第一步复制的git地址复 ...

  9. 通过git从码云克隆项目到本地

    1.下载安装Git,傻瓜式下一步下一步即可... 2.配置Git: 2.1.选择你要clone到本地的路径:右键--->$ Git Bash Here,弹出Linux命令窗口:$ cd ~直接回 ...

随机推荐

  1. Java并发编程原理与实战二十一:线程通信wait&notify&join

    wait和notify wait和notify可以实现线程之间的通信,当一个线程执行不满足条件时可以调用wait方法将线程置为等待状态,当另一个线程执行到等待线程可以执行的条件时,调用notify可以 ...

  2. 容斥原理&&莫比乌斯专题

    A题:A - Eddy's爱好   HDU - 2204 具体思路:如果是求n中,为平方数的有多少个,那么答案肯定是sqrt(n),同理,如果是三次根号的话,那么答案肯定是n的三分之一次方.然后继续按 ...

  3. UNIX环境高级编程 第16章 网络IPC:套接字

    上一章(15章)中介绍了UNIX系统所提供的多种经典进程间通信机制(IPC):管道PIPE.命名管道FIFO.消息队列Message Queue.信号量Semaphore.共享内存Shared Mem ...

  4. [转]激活函数ReLU、Leaky ReLU、PReLU和RReLU

    “激活函数”能分成两类——“饱和激活函数”和“非饱和激活函数”. sigmoid和tanh是“饱和激活函数”,而ReLU及其变体则是“非饱和激活函数”.使用“非饱和激活函数”的优势在于两点:    1 ...

  5. msfpayload反弹shell

    1.前期-- 情景就是当我们获得webshell时,我们想留下我们的后门,这个时候我们可以用到msfpayload与msfconsole结合使用 启动PostgreSQL服务:service post ...

  6. 使用IntelliJ IDEA新建maven的javaWeb项目部署,启动访问index,jsp页面

    对于用惯了eclipse的人,idea其实还挺不一样的,也是摸索了很久,看了好多博客,这里就记录一下,以后肯定经常用!,不过使用熟练了,功能确实非常强大,真的牛! 1 新建maven项目,配置好目录结 ...

  7. MVVM模式的命令绑定

    命令绑定要达到的效果 命令绑定要关注的核心就是两个方面的问题,命令能否执行和命令怎么执行.也就是说当View中的一个Button绑定了ViewModel中一个命令后,什么时候这个Button是可用的, ...

  8. html5新增表单元素

    1.验证 <form> <input type="email"></input>    验证邮箱 <input type="ur ...

  9. docker强制关闭命令

    删除容器: 优雅的关闭容器:docker stop  容器id/容器名字 强制关闭容器:docker kill 容器id/容器名字 删除镜像: docker rmi 容器id/容器名字

  10. VBA笔记-参考教程

    参考教程1: http://www.cnblogs.com/wuzhiblog/tag/VBA/ 1. VBA中字符换行 VBA中字符换行显示需要使用换行符来完成.下面是常用的换行符          ...