Gradle 1.12翻译——第二十章. 构建环境
有关其他已翻译的章节请关注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目录。这个值可以设置为jdk或jre的位置,不过,根据你的构建所做的,选择 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.home或org.gradle.jvmargs。更多详细信息,请参阅第十九章, Gradle
守护进程。
20.2.
通过代理访问网站
配置 HTTP 代理服务器 (例如用于下载依赖) 是通过标准的 JVM 系统属性来做的。这些属性可以直接在构建脚本中设置;例如设置代理主机为System.setProperty。或者,可以在构建的根目录或 Gradle 主目录中的 gradle.properties 文件中指定这些属性。
('http.proxyHost', 'www.somehost.org')
示例 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翻译——第二十章. 构建环境的更多相关文章
- Gradle 1.12翻译——第十九章. Gradle 守护进程
有关其他已翻译的章节请关注Github上的项目:https://github.com/msdx/gradledoc/tree/1.12,或访问:http://gradledoc.qiniudn.com ...
- Gradle 1.12 翻译——第十三章 编写构建脚本
有关其它已翻译的章节请关注Github上的项目:https://github.com/msdx/gradledoc/tree/1.12,或訪问:http://gradledoc.qiniudn.com ...
- Gradle 1.12 翻译——第十四章. 教程 - 杂七杂八
有关其它已翻译的章节请关注Github上的项目:https://github.com/msdx/gradledoc/tree/1.12,或訪问:http://gradledoc.qiniudn.com ...
- Gradle 1.12 翻译——第十六章. 使用文件
有关其它已翻译的章节请关注Github上的项目:https://github.com/msdx/gradledoc/tree/1.12,或訪问:http://gradledoc.qiniudn.com ...
- Gradle 1.12 翻译——第十七章. 从 Gradle 中调用 Ant
有关其他已翻译的章节请关注Github上的项目:https://github.com/msdx/gradledoc/tree/1.12,或访问:http://gradledoc.qiniudn.com ...
- Gradle 1.12 翻译——第十五章. 任务详述
有关其他已翻译的章节请关注Github上的项目:https://github.com/msdx/gradledoc/tree/1.12,或访问:http://gradledoc.qiniudn.com ...
- Gradle 1.12 翻译——第十八章. 日志
有关其他已翻译的章节请关注Github上的项目:https://github.com/msdx/gradledoc/tree/1.12,或访问:http://gradledoc.qiniudn.com ...
- Gradle 1.12 翻译——第十二章 使用Gradle 图形用户界面
有关其他已翻译的章节请关注Github上的项目:https://github.com/msdx/gradledoc/tree/1.12,或访问:http://gradledoc.qiniudn.com ...
- Gradle 1.12 翻译——第九章 Groovy快速入门
由于时间关系,没办法同时做笔记和翻译,关于Gradle的用户指南,本博客不再做相关笔记,而只对未翻译章节进行翻译并在此发表. 有关其他已翻译的章节请关注Github上的项目:https://githu ...
随机推荐
- Python:操作数据库
(一) 前言 本文说明如何连接Oracle.MySQL.sqlserver,以及执行sql.获取查询结果等. (二) DB-API DB-API阐明一系列所需对象和数据库 ...
- Linux下安装oracle的一般步骤
1.配置内核参数2.创建用户和用户组3.创建安装目录4.配置oracle用户环境5.安装数据库软件6.创建数据库7.配置监听
- KVM 时钟分析
1. 关于GToffset: KVM的guset时钟为gc0_COUNT 其中:mfc0 gc0_count = c0_COUNT+GToffset vcpu_run 以及 vcpu_reenter的 ...
- python笔记十(列表生成式、字典生成式、生成器、生成器的并行)
一.列表生成式 列表生成式就是python设置的可以用来可以生成列表的. 如要生成一个0-9的列表我们可以通过以下代码实现: >>> list(range(10)) [0, 1, 2 ...
- Vue2.0搭建脚手架流程
介绍 Vue.js是一套构建用户界面的渐进式框架.Vue 只关注视图层,采用自底向上增量开发的设计.Vue 的目标是通过尽可能简单的 API 实现响应的数据绑定和组合的视图组件. 安装node.js ...
- 启动Docker容器
启动容器有两种方式,一种是基于镜像新建一个容器并启动,另外一个是将在终止状态(stopped)的容器重新启动. 因为 Docker 的容器实在太轻量级了,很多时候用户都是随时删除和新创建容器. 新建并 ...
- Bootstrap3 代码-程序输出
通过 <samp> 标签来标记程序输出的内容. This text is meant to be treated as sample output from a computer prog ...
- Gradle 1.12用户指南翻译——第46章. Java 库发布插件
本文由CSDN博客貌似掉线翻译,其他章节的翻译请参见: http://blog.csdn.net/column/details/gradle-translation.html 翻译项目请关注Githu ...
- 让你的代码减少三倍!使用kotlin开发Android(五) 监听器
本文同步自 博主的私人博客wing的地方酒馆 在前面的博客中,有一个栗子,是点击按钮转跳的监听器. button.setOnClickListener { val user = User(" ...
- Tomcat如何实现Comet
Comet模式是一种服务器端推技术,它的核心思想提供一种能让当服务器端往客户端发送数据的方式.Comet模式为什么会出现?刚开始人们在客户端通过不断自动刷新整个页面来更新数据,后来觉得体验不好又使用了 ...