码云Android项目构建注意事项(转载)
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构建流程:
判断是否是标准的 gradle 项目。
读取 settings.gradle 文件,找到子项目的路径。
读取 gradle.properties 或 config/gradle.properties 文件(确定 keystore。如果 keystore 使用私有项目地址,则使用当前用户身份下载。如果没有设置或者不存在私有项目地址及权限错误,则生成随机签名用来构建)。
读取 gradle/wrapper/gradle-wrapper.properties 文件, 确定使用的 gradle 版本,下载并解压。
进入子项目目录。如果没有定义,即为项目根目录。
读取子项目中 build.gradle 文件,修改其中的 signingConfigs section 和 buildTypes section,以确保使用正确的签名和构建版本。
构建成功,上传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 项目使用步骤
设置项目的语言为Android。
进入项目首页会出现【生成apk】按钮。
点击【生成apk】按钮,进入构建页面(使用当前用户的身份拉取私有仓库中的 keystore )。
【注意】:如果想使用项目中提供的 keystore(私有仓库地址),请选中该复选框!
构建过程。
构建完成(提供 apk 下载)。
生成随机签名(提供签名信息和 keystore 下载,项目中未提供签名,为方便测试,码云为每个项目生成了随机的签名)。
码云Android项目构建注意事项(转载)的更多相关文章
- 2017 年度码云新增项目排行榜 TOP 50,为它们打“call”
2017 年度码云新增项目排行榜 TOP 50 正式出炉 !2017 结束了,我们来关注一下这一年里码云上新增的最热门的开源项目吧.此榜单根据 2017 年在码云上新增开源项目的 Watch.Star ...
- 使用Git将项目托管到码云及从码云导入项目到本地
前言 码云+Git+IntellJ IDEA 欢迎转载,请注明作者和出处哦☺ Git 的安装及使用的教程 最好不要在官网下载,官网下载要vpn而且速度还很慢 . 推荐在 https://gi ...
- 2018 年度码云热门项目排行榜 TOP 10
2016 年度码云热门项目排行榜 TOP 10 是通过开源项目2016年在码云上的 Watch.Star.Fork 数量来评定的榜单.码云平台发展至今,涌现了越来越多优秀的开源项目,越来越多的开源作者 ...
- 在Windows下使用Git+TortoiseGit+码云管理项目代码
1. 安装Git 下载地址:点击打开链接 安装指南:默认选项即可 2. 安装TortoiseGit 下载地址:点击打开链接 安装指南:点击打开链接 3. 在码云创建账号, ...
- 谷歌开源项目Chromium的源码获取与项目构建(Win7+vs10/vs13)
转自:http://blog.csdn.net/kuerjinjin/article/details/23563059 从12年那会儿开始获取源码和构建chromium项目都是按照那时候的官方要求用w ...
- 使用TortoiseGit+码云管理项目代码
1.下载安装msysgit. 2.下载安装tortoisegit. 3.创建ssh密钥. 开始–所有程序–TortoiseGit–PuTTYgen 生成方法:点击“Generate”后,鼠标在key下 ...
- idea中git从码云克隆项目到本地
1.首先需要在操作系统上安装Git分布式管理系统 此处自行百度............. 2.在Intellij IDEA中配置Git 打开Settings(File-->Settings) - ...
- eclipse导入码云-GIT项目
1.首先找到项目源码地址我随便找到一个git地址 :https://gitee.com/mingSoft/MCMS 2.打开eclipse空白处右键导入项目搜索git. 3.将第一步复制的git地址复 ...
- 通过git从码云克隆项目到本地
1.下载安装Git,傻瓜式下一步下一步即可... 2.配置Git: 2.1.选择你要clone到本地的路径:右键--->$ Git Bash Here,弹出Linux命令窗口:$ cd ~直接回 ...
随机推荐
- Spring Cloud(十一)声名式服务调用:Feign的使用 (上)
一.写在前边 最近开发任务比较忙,下班也开始锻炼了,这个系列的文章就放了很久,看github我提交的Feign的入门程序已经好久了,今天正好得空,这就更上一贴,准备分几部分写 注意:之前几个项目中,笔 ...
- 关于安装在win10上的oracle10g 兼容性问题
首先在安装过程中会出现一次报错,在安装的时候 安装好了以后,准备敲击命令如果出现闪退,即是兼容性问题,下面继续设置兼容性问题 然后右键----属性----兼容性,勾上以兼容性运行即可
- 在cygwin下安装ns2
首先下载ns2.可以到sourceforge去下载最新的all-in-one版本2.31,url为http://sourceforge.net/project/showfiles.php?group_ ...
- C# 定时执行方法: System.Timers.Timer用法示例
System.Timers.Timer t = new System.Timers.Timer(5000); //设置时间间隔为5秒 private void Form1_Load(ob ...
- sru源码--language model
import sys import os import argparse import time import random import math import numpy as np import ...
- PATH变量重复
命令: export PATH=$(echo $PATH | tr : "\n"| sort | uniq | tr "\n" :) Code: awk -F: ...
- shutdown系统调用
/* * Shutdown a socket. */ SYSCALL_DEFINE2(shutdown, int, fd, int, how) { int err, fput_needed; stru ...
- libevent简介和使用【转】
转自:http://www.open-open.com/lib/view/open1386510630330.html libevent是一个基于事件触发的网络库,memcached底层也是使用lib ...
- TcxScheduler的使用
TcxScheduler有两种工作模式: 一.非绑定模式 非绑定模式下,数据被存储在文件系统中.要让scheduler工作在非绑定模式下,应使TcxScheduler.Storage属性绑定到TcxS ...
- shell服务管理->
nginx.php等服务管理练习脚本 ->nginx的启动状态 root@jumpserver- day02]# cat nginx_web.sh #!/bin/bash source /etc ...