gradle常见问题总结
来源:互联网 发布:数据交易吧 编辑:程序博客网 时间:2024/06/18 10:55
本文转载自:http://www.cnblogs.com/xguo/p/3175377.html
Gradle借助Groovy语言作为其配置脚本,使得Gradle变的十分强大,几乎是无所不能,我们在掌控这个强大且功能繁多的工具时也比较困难和凌乱,因此本文记录一些使用过程常见的配置,以备不时之需!
Gradle如何包含文件
apply from: "./libraries.gradle"
如何指定build输出目录和版本号
buildDir = "target"version = '1.0'
在执行Gradle命令时如何指定参数
gradle task -Pprofile=development
相当于在build.gradle中定义了一个变量profile,所以可以在上下文中直接使用profile。
GRADLE和IDEA集成时如何不自动下载依赖源码和JavaDOC
idea { module { downloadJavadoc = false downloadSources = false }}
如何解决编译、生成JavaDOC和测试时注释的乱码问题
写在一起:
[compileJava, javadoc, compileTestJava]*.options*.encoding = 'UTF-8'
单独写:
javadoc { options.encoding = "UTF-8"}…
如何自定义Build后的Classes目录或Resources目录的输出位置
Gradle默认把Classes和Resources分开放,那么把他们放在一起:
sourceSets { main { output.resourcesDir = "${buildDir}/classes/main" }}
Gradle Jetty配置范例和如何指定webdefault.xml
指定webdefault.xml是为了解决在Windows下静态文件锁定的问题
apply plugin: "jetty"jettyRun { contextPath = '/' reload = 'manual' webDefaultXml = file('webdefault.xml')}httpPort = 8080stopPort = 8011stopKey = 'jetty6'
如何使用.properties文件
Gradle会自动加载文件 gradle.properties
在根目录新建或打开gradle.properties
spring = 3.2.2.RELEASEhibernate = 4.1.7.Final
在build.gradle中使用
直接使用
println springprintln hibernate
在字符串中使用
println "spring: $spring" //或println "hibernate: ${hibernate}!"
如何限定Task的执行条件
test.onlyIf { !Boolean.getBoolean('skip.tests') }
Task间如何传递变量
//Test任务,注意不是Tasktest { //暴露变量testResult,默认表示单元测试会成功 ext.testResult = true //...}task testCompleted <<{ //读取testResult值,如果成功... 如果失败... 想想这个能做什么? if (test.testResult) { //... }}//在test执行完毕后无论成功或失败都执行testCompleted任务test.finalizedBy testCompleted
子项目如何定义
打开或新建settings.gradle文件
include 'm1'include 'm2'
或者 include 'm1', 'm2'
指定子项目的独立Gradle脚本名,以项目名命名,而非build.gradle:
rootProject.children.each { project -> project.buildFileName = "${project.name}.gradle" //校验子项目合法性 assert project.projectDir.isDirectory() assert project.buildFile.isFile()}
根项目和子项目如何共享配置
allprojects { apply plugin: 'idea' repositories { mavenCentral() mavenLocal() } //…}
所有子项目共享配置
subprojects { apply plugin: 'java' version = '1.0-SNAPSHOT' repositories { mavenCentral() }}
注意
上面的allprojects和subprojects都可以接收到一个project的参数,因为他们是一个Set<Project>
。
这样可以根据不同的子项目个性化定义配置如:
subprojects { subProject -> apply plugin: 'idea' buildDir = "target" if ( ! subProject.name.startsWith( 'm1' ) ) { apply plugin: 'java' configurations { //... } dependencies { //... } }}
而且在任何时候都使用subprojects.each {project -> …}
.
或者使用configure来批量指定部分项目的配置
configure(subprojects.findAll {it.name.contains('m1')}) { apply plugin: 'war'}
在多项目配置中如何单独指定单个项目配置
project(‘:m1’) { apply plugin: 'war' dependencies { //... }}
':m1' 项目名称。
子项目间如何依赖
dependencies { compile( project(':m1') )}
0 0
- gradle常见问题总结
- gradle常见问题总结
- Gradle常见问题
- Gradle常见问题
- Android Gradle常见问题
- gradle 常见问题基础知识
- Gradle总结
- Gradle总结
- Gradle总结
- 【转载常见问题】Refreshing Gradle Project
- 常见问题总结
- 常见问题总结
- 常见问题总结
- 常见问题总结
- 常见问题总结
- 常见问题总结
- Gradle学习目录总结,gradle目录总结
- Gradle学习目录总结,gradle目录总结
- queue vector greater <int> 从小到大排列
- 在Android中使用JobScheduler
- iptables 简单使用
- JavaBean中DAO设计模式介绍
- UIimage转NSData + UIimage通过URL获取图片
- gradle常见问题总结
- rsync同步
- bzoj 3529: [Sdoi2014]数表 (反演)
- Linux Shell命令中判断目录下是否存在已知后缀名文件的命令
- mysql语句
- 基于物理的渲染技术(PBR)系列二
- http权威指南
- Material Design-UI之CoordinatorLayout
- Android OkHttp完全解析 是时候来了解OkHttp了