有关其他已翻译的章节请关注Github上的项目:https://github.com/msdx/gradledoc/tree/1.12,或访问:http://gradledoc.qiniudn.com/1.12/userguide/userguide.html

本文原创,转载请注明出处:http://blog.csdn.net/maosidiaoxian/article/details/41476357

关于我对Gradle的翻译,以Github上的项目及http://gradledoc.qiniudn.com 上的文档为准。如有发现翻译有误的地方,将首先在以上两个地方更新。因时间精力问题,博客中发表的译文基本不会同步修改。

第二十章. 构建环境

20.1.
通过 gradle.properties 配置构建环境

Gradle 提供了几个选项,可以很容易地配置将用于执行您的构建的 Java 进程。当可以通过 GRADLE_OPTS 或 JAVA_OPTS 在你的本地环境中配置这些选项时,如果某些设置如 JVM 内存设置, Java home, 守护进程的开/关,它们可以和你的项目在你的版本控制系统中被版本化的话,将会更有用,这样整个团队就可以使用一致的环境了。在你的构建当中,建立一致的环境,就和把这些配置放进gradle.properties 文件一样简单。这些配置将会按以下顺序被应用(以防在多个地方都有配置时只有最后一个
生效):

  • 位于项目构建目录的gradle.properties
  • 位于gradle
    用户主目录
    gradle.properties
  • 系统属性,例如当在命令行中使用 -Dsome.property 时。

下面的属性可以用于配置 Gradle 构建环境:

org.gradle.daemon

当设置为true 时,Gradle
守护进程会运行构建。对于本地开发者的构建而言,这是我们最喜欢的属性。开发人员的环境在速度和反馈上会优化,所以我们几乎总是使用守护进程运行 Gradle 作业。由于 CI 环境在一致性和可靠性上的优化,我们不通过守护进程运行 CI 构建(即长时间运行进程) 。

org.gradle.java.home

为 Gradle 构建进程指定 java home目录。这个值可以设置为jdkjre的位置,不过,根据你的构建所做的,选择 jdk会更安全。如果该设置未指定,将使用合理的默认值。

org.gradle.jvmargs

指定用于该守护进程的 jvmargs。该设置对调整内存设置特别有用。目前的内存上的默认设置很大方。

org.gradle.configureondemand

启用新的孵化模式,可以在配置项目时使得 Gradle 具有选择性。只适用于相关的项目被配置为在大型多项目中更快地构建。请参阅56.1.1.1蘵,“配置
on demand”

org.gradle.parallel

如果配置了这一个,Gradle 将在孵化的并行模式下运行。

20.1.1. Forked
java 进程

许多设置(如 java 版本和最大堆大小)可以在启动一个新的 JVM 构建进程时指定。这意味着 Gradle 在分析了各种gradle.properties文件之后,必须启动一个单独的
JVM 进程,以执行构建操作。当通过守护进程运行时,带有正确参数的 JVM 会启动一次,并在每次的守护进程构建执行时复用。当不通过守护进程执行 Gradle 时,在每次构建执行中都必须启动一个新的 JVM ,除非 JVM 是由 Gradle 启动脚本启动的,并且恰好具有相同的参数。

在执行每个构建时运行一个额外的 JVM 的代价是非常昂贵的,这就是为什么我们强烈推荐您使用 Gradle 守护进程,如果你指定了org.gradle.java.homeorg.gradle.jvmargs。更多详细信息,请参阅第十九章, Gradle
守护进程

20.2.
通过代理访问网站

配置 HTTP 代理服务器 (例如用于下载依赖) 是通过标准的 JVM 系统属性来做的。这些属性可以直接在构建脚本中设置;例如设置代理主机为System.setProperty
('http.proxyHost', 'www.somehost.org')
。或者,可以在构建的根目录或 Gradle 主目录中的 gradle.properties 文件中指定这些属性。

示例 20.1. 配置 HTTP 代理服务器

gradle.properties

systemProp.http.proxyHost=www.somehost.org
systemProp.http.proxyPort=8080
systemProp.http.proxyUser=userid
systemProp.http.proxyPassword=password
systemProp.http.nonProxyHosts=*.nonproxyrepos.com|localhost

对于 HTTPS 有单独的设置。

示例 20.2. 配置 HTTPS 代理服务器

gradle.properties

systemProp.https.proxyHost=www.somehost.org
systemProp.https.proxyPort=8080
systemProp.https.proxyUser=userid
systemProp.https.proxyPassword=password
systemProp.https.nonProxyHosts=*.nonproxyrepos.com|localhost

我们无法很好地概述所有可能的代理服务器设置。其中可以去看的一个地方是 Ant 项目的一个文件中的常量。这里是SVN的视图的链接。另一个地方是
JDK 文档的网络属性页。如果有人知道更好的概述,请发邮件让我们知道。

20.2.1.
NTLM 身份验证

如果您的代理服务器需要 NTLM 身份验证,您可能需要提供验证域,以及用户名和密码。有两种方法可以向 NTLM 代理提供验证域:

  • http.proxyUser系统属性设置为一个这样的值:/用户名
  • 通过http.auth.ntlm.domain系统属性提供验证域。

Gradle 1.12翻译——第二十章. 构建环境的更多相关文章

  1. Gradle 1.12翻译——第十九章. Gradle 守护进程

    有关其他已翻译的章节请关注Github上的项目:https://github.com/msdx/gradledoc/tree/1.12,或访问:http://gradledoc.qiniudn.com ...

  2. Gradle 1.12 翻译——第十三章 编写构建脚本

    有关其它已翻译的章节请关注Github上的项目:https://github.com/msdx/gradledoc/tree/1.12,或訪问:http://gradledoc.qiniudn.com ...

  3. Gradle 1.12 翻译——第十四章. 教程 - 杂七杂八

    有关其它已翻译的章节请关注Github上的项目:https://github.com/msdx/gradledoc/tree/1.12,或訪问:http://gradledoc.qiniudn.com ...

  4. Gradle 1.12 翻译——第十六章. 使用文件

    有关其它已翻译的章节请关注Github上的项目:https://github.com/msdx/gradledoc/tree/1.12,或訪问:http://gradledoc.qiniudn.com ...

  5. Gradle 1.12 翻译——第十七章. 从 Gradle 中调用 Ant

    有关其他已翻译的章节请关注Github上的项目:https://github.com/msdx/gradledoc/tree/1.12,或访问:http://gradledoc.qiniudn.com ...

  6. Gradle 1.12 翻译——第十五章. 任务详述

    有关其他已翻译的章节请关注Github上的项目:https://github.com/msdx/gradledoc/tree/1.12,或访问:http://gradledoc.qiniudn.com ...

  7. Gradle 1.12 翻译——第十八章. 日志

    有关其他已翻译的章节请关注Github上的项目:https://github.com/msdx/gradledoc/tree/1.12,或访问:http://gradledoc.qiniudn.com ...

  8. Gradle 1.12 翻译——第十二章 使用Gradle 图形用户界面

    有关其他已翻译的章节请关注Github上的项目:https://github.com/msdx/gradledoc/tree/1.12,或访问:http://gradledoc.qiniudn.com ...

  9. Gradle 1.12 翻译——第九章 Groovy快速入门

    由于时间关系,没办法同时做笔记和翻译,关于Gradle的用户指南,本博客不再做相关笔记,而只对未翻译章节进行翻译并在此发表. 有关其他已翻译的章节请关注Github上的项目:https://githu ...

随机推荐

  1. js密码64加密

    可以在客户端对密码进行简单的64位加密,服务端对应使用64位解密即可. /** * * Base64 encode / decode * * @author * @date * @email */ f ...

  2. hibernate5学习之理解数据库级并发

    本文作者:苏生米沿 本文地址:http://blog.csdn.net/sushengmiyan/article/details/50551741 当我们谈起隔离的时候,我们总是假定两个物体直接要么隔 ...

  3. Android的AIDL机制

    Android 接口定义语言 (AIDL) AIDL(Android 接口定义语言)与您可能使用过的其他 IDL 类似. 您可以利用它定义客户端与服务使用进程间通信 (IPC) 进行相互通信时都认可的 ...

  4. 手把手图文教你从Eclipse项目迁移Android Studio

    转载请把头部出处链接和尾部二维码一起转载,本文出自逆流的鱼yuiop:http://blog.csdn.net/hejjunlin/article/details/52937391 从Android的 ...

  5. 微信小程序发布

    一.操作步骤 (1)打开[微信开发者工具]->新建一个默认项目->点击[项目]->点击[上传] (2)使用微信小程序公众平台管理员扫描二维码,在手机微信上点击[确认上传] (3)输入 ...

  6. Memcached - In Action

    Memcached 标签 : Java与NoSQL With Java 比较知名的Java Memcached客户端有三款:Java-Memcached-Client.XMemcached以及Spym ...

  7. [django]urls.py 中重定向

    Django 1.5 有时候需要对一个链接直接重定向,比如首页啥的重定向到一个内容页等等,在views.py 中可以设定,如果没有参数啥的在urls.py 中设定更加方面 from django.vi ...

  8. [ExtJS5学习笔记]第二十五节 利用window.open()函数实现ExtJS5的登陆页面跳转

    本文地址:http://blog.csdn.net/sushengmiyan/article/details/40427543 mvvm方式实现登陆的博客:http://blog.csdn.net/s ...

  9. storm消费kafka实现实时计算

    大致架构 * 每个应用实例部署一个日志agent * agent实时将日志发送到kafka * storm实时计算日志 * storm计算结果保存到hbase storm消费kafka 创建实时计算项 ...

  10. DBoW2应用

    图像对应的bag-of-words向量\(v_t\) 假设词典总共有\(W\)个单词,那么每一幅图像能够用一个\(W\)维的向量表示 \((t_1, t_2, t_3, ..., t_W)\)其中 \ ...