问题:

开发的时候经常需要向项目中添加一些额外的参数或者硬编码的值。

解决方案:

使用ext块设置公用的值。如果需要从build文件中移除这些值,可以将参数放到gradle.properties文件中,或者在命令行下使用-P设置参数。

详细:

Gradle文件支持使用简单的ext(ext代表extra)语法定义参数。这样可以定义一次变量,在整个文件中使用它。

你可以将参数值硬编码到build文件。如:

Groovy风格被应用在这里,意味着AAVersion没有类型,在赋值的时候使用字符串,并且插入到两个Groovy字符串中。

使用def关键字意味着在当前文件中这是一个本地变量。如果定义参数的时候没有使用def(或者使用其他类型),这个变量是对应于整个项目,即在它的任何子项目中都可以使用这个参数。

如果希望将实际的参数值从build文件中移除?考虑一种情况,使用maven仓库的时候需要登录验证,如:这是硬编码的

你不必再build文件中记录实际的username和password值。你可以将他们写入根目录下的gradle.properties文件中,如

这样credentials块里面的值可以用变量代替,如:

你也可以在命令行下使用-P设置参数,如:

如果你使用多种方式设置参数,可以使用下面的方法:

执行printProperties任务可以心事ext块下的变量。

如果是参数是在gradle.properties文件中定义,结果有点不同:

参数可以通过命令行的方式设置(优先级最高)。

你可以通过,extras块,properties文件,命令行,这几种方式实现所需要的。

Android开发:《Gradle Recipes for Android》阅读笔记(翻译)2.1——设置项目参数的更多相关文章

  1. Android开发:《Gradle Recipes for Android》阅读笔记(翻译)2.5——在项目中共享配置

    问题: 取出多个模块下相同的配置 解决方案: 在顶级gradle配置文件里面使用allprojects或者subprojects块 讨论: 当你在android studio中新建android项目时 ...

  2. Android开发:《Gradle Recipes for Android》阅读笔记(翻译)3.2——设置Flavors和Variants

    问题: 需要构建大体上一样,但是使用不同资源或者类的应用. 解决方案: 产品的flavors可以帮助你对同一个app创建不同的版本. 讨论: build types是开发过程的一部分,一般用来将app ...

  3. Android开发工具全面转向Android Studio(3)——AS project/module的目录结构(与Eclipse对比)

    如果AS完全还没摸懂的,建议先看下Android开发工具全面转向Android Studio(2)——AS project/module的CRUD. 注:以下以Windows平台为标准,AS以目前最新 ...

  4. Android开发工具全面转向Android Studio(2)——AS project/module的CRUD

    本文有些地方可能需要衔接Android开发工具全面转向Android Studio(1)——准备开发环境,读起来效果会更好. 这个世界很奇妙,所有的东西离不开CRUD,即增删改查.即使人本身也遵循这个 ...

  5. 配置cordova的android开发环境(无android studio)

    原文:配置cordova的android开发环境(无android studio) 趁元旦放假想试一下cordova,不想安装庞大的android studio,所以想最小化安装,居然花了一整天的时间 ...

  6. 收集整理Android开发所需的Android SDK、开发中用到的工具、Android开发教程、Android设计规范,免费的设计素材等。

    AndroidDevTools Android Dev Tools官网地址:www.androiddevtools.cn 收集整理Android开发所需的Android SDK.开发中用到的工具.An ...

  7. Eclipse搭建Android开发环境并运行Android项目

    Eclipse搭建Android开发环境并运行Android项目 (详细) 安装环境: window 10 64位 安装工具: JDK.Eclipse.SDK.ADT 安装步骤: 1.JAVA JDK ...

  8. Android开发:《Gradle Recipes for Android》阅读笔记(翻译)6.2——DSL文档

    问题: 你需要查找Android Gradle DSL的完整文档. 解决方案: 访问Gradle Tools网站,从Android开发网站下载ZIP文件. 讨论:Android开发网站首页有完整的AP ...

  9. Android开发:《Gradle Recipes for Android》阅读笔记(翻译)6.1——推荐配置

    问题: 你想要提高Gradle的构建效率. 解决方案: 使用下面推荐的技术组合. 讨论: 首先,这里没有可以影响app表现的建议.有很多你可以做的事来提高app,很多都和Android的混淆工具有关. ...

随机推荐

  1. ./test.sh . ./test.sh source ./test.sh的区别

    背景 今天写几个shell脚本,使用一个公共的config.sh,但是export出来的东西在另外的*.sh中不能直接用,这让我很惆怅,印象中就是可以export出来给别的shell用啊,只要不是下一 ...

  2. Windows 10系统专业精简

    第1页:捆绑应用一键卸载 随着微软彻底放弃win7的更新,win8的弱势,新一代的win10系统则成为了微软着力打造的王牌系统. 作为微软最新的王牌产品,win10系统从功能到外观都有着超过前代产品的 ...

  3. tomcat优化---大数据量提交tomcat时,tomcat无法接收导致页面无反应

    关于tomcat的一个优化问题: 有时候保存大数据量的数据时.tomcat不优化的话,页面会没反应.tomcat后台并不报错,仅仅是提示以下内容: 警告: More than the maximum  ...

  4. Selenium webdriver Java 高级应用

    对于这一段还蛮有感慨的,只想说,代码还是需要自己去敲的. 1. 改变用户代理 import org.junit.AfterClass; import org.junit.BeforeClass; im ...

  5. taro + iview 实现跨平台开发(App,Wap,微信小程序)

    1.安装 (1)安装脚手架 npm install -g @tarojs/cli taro init myApp (2)H5端运行 npm run dev:h5 taro build --type h ...

  6. formidable 模块化开发 代码拆分(解耦) nodejs图片服务器架构

    引言:程序要做到:健壮性.低耦合.可扩展.方便程序员分工合作 上传图片值nodejs服务器并显示图片的源代码: post.html : <!DOCTYPE html> <html l ...

  7. lua与c++ 中布尔布bool值对应关系

    lua代码返回值为真c++ lua_toboolean 返回一个 int  lua true = 1 false = 0 c++给lua返回 lua_pushboolean 1 = true 0 = ...

  8. Cocos2D-X2.2.3学习笔记10(几何图形)

    我们这节来学习几何图形,即怎样使用Cocos2d-x绘制各种图形.已经贝塞尔曲线 我们查看CCNode中有个draw函数,我们须要将绘制的代码所有写在这个函数里面.写在init函数里是画不出线来的, ...

  9. 前端模块化和AMD、CMD规范

    前端模块化和AMD.CMD规范 先看下基础:https://github.com/seajs/seajs/issues/547

  10. Arthas安装问题

    1. 下载安装 方式一: 安装Arthas: curl -L https://alibaba.github.io/arthas/install.sh | sh 启动Arthas: ./as.sh 报t ...