Gradle使用《一》

1.gradle构建脚本在build.gradle中,脚本采用groovy语法,project和task是脚本中最重要的两个概念。
2.task语法及执行:
task的几种写法:
a、task hello{
doLast{
println 'hello world'
}
}
b、hello << {  相当于dolast
println 'hello dolast'
}
c、hello.doFirst{
println 'doFirst' 
}
d、hello.doLast{
println 'doLast'
}
e、task hello2 << {
println 'hello2 world' 
}
运行task指令:gradle -q hello,省略-q后会打印出额外的信息

3.任务依赖写法:
task intro(dependsOn:hello) << {
println "I'm Gradle"
}

4.动态任务及循环:
task count << {
4.times{println "$it"}
}
:gradle -q count  输出四次循环,0,1,2,3


4.times { counter -> task "task$counter" << {
println "I'm task number $counter"
}
}
:gradle -q task3  输出Im task number3

5.自定义task属性及引用
task myTask{
ext.myProperty = "myValue"
}
task printTask{
println myTask.myProperty
println "greeting from the $printTask.name task"
}
用ext关键字来代表任务,用“.”号后跟属性名来创建属性
在字符串中可以通过$+任务名可以用来引用任务

6.使用ant任务
task loadfile << {
def files = file('../test').listFiles().sort()
files.each{File file->
if(file.isFile()){
ant.loadfile(srcFile:file,property:file.name)
println "*** $file.name ***"
println "${ant.properties[file.name]}"
}
}
}
使用ant中的loadfile方法

7.使用默认的任务:defaultTasks 'clean','run'  

8.使用DAG(有向非循环图)进行配置
task distribution <<{  
        println "We build the zip with version = $version"  
}  
task release (dependsOn :'distribution')<<{  
        println 'We release now'  
}  
gradle.taskGraph.whenReady {  
        taskGraph->  
        if(taskGraph.hasTask(release)){  
                version = '1.0'  
        }else {  
                version = '1.0-SNAPSHOT'  
        }  

gradle分配置阶段和执行阶段,配置阶段完成后,gradle就知道所有需要被执行的任务。这样我们就可以利用这些信息了解哪些任务被执行了。下面的例子来判断任务执行完成后,release任务是否被执行。

9.常用的语法:
apply plugin: 'java'  这是一个java项目
gradle clean:清楚上一次构建
gradle build:执行构建
gradle assemble:只编译java源码,生成jar包,不执行测试。
gradle check:只进行测试,不生成build目录。

10. dependencies,java项目依赖外部的jar包,gradle跟进提供的库去下载并关联
repositories{  
    mavenCentral()   
}   
dependencies {  
        compile group:'commons-collections',name:'commons-collections',version:'3.2'  
        testCompile group:'junit',name:'junit',version:'4.0+'  
}
gradle根据mavencentral库下载dependencies中的jar包文件

11. 定义项目,修改Manifest.mf中的内容
sourceCompatibility = 1.5  
version = '1.0'  
jar {  
    manifest {  
        attributes 'Implementation-Title':'Gradle Quickstart',  
                   'Implementation-Version':version  
        }  

version是当前的版本号,sourceCompatibility是jdk版本

12.发布项目
uploadArchives {  
    repositories {  
        flatDir {  
            dirs 'repos'  
        }  
    }  
}
在项目根目录下生成repos目录,里面生成了可发布的jar包和xml文件等。

12.自定义变量及属性
def dest = "this is myself"   通过def自定义变量
ext {  
    springVersion = "3.1.0.RELEASE"  
    emailNotification = "build@master.org"  
}
ext可以一次定义多个属性

13.setter和getter语法
println project.buildDir  
println getProject().getBuildDir()  
project.buildDir = 'target'  
getProject().setBuildDir('target')  
task hello<<{  
        println 'Hello world'  
        println project.buildDir  
}

14.方法的调用
test.systemProperty 'some.prop','value'  
test.systemProperty('some.prop','value')  
方法的调用可以带括号也可以不带。

15.groovy集合
apply plugin:'java'  
test.includes = ['org/gradle/api/**','org/gradle/internal/**']  
List<String> list = new ArrayList<String>()  
list.add('org/gradle/api**')  
list.add('org/gradle/internal/**')  
test.includes = list  
Map<String,String> map = [key1:'value',key2:'value2'] 

16.跳过任务
使用断言:
task hello <<{  
    println 'hello world'  
}   
hello.onlyIf{!project.hasProperty('skipHello')}  
抛出StopExecutionException:
task compile <<{  
    println "We are doing the compile"  
}    
compile.doFirst{  
    if(true){throw new StopExecutionException()}  
}   
task myTask(dependsOn:'compile')<<{  
    println 'I am not affected'  

任务的enabled属性:
task disableMe <<{  
    println 'ni dou bu hui zhi xing ,ni hai shuo zhe me duo hua'  
}   
disableMe.enabled = false  

17.定位文件
File configFile = file('src/config.xml')  
configFile = file(configFile.absolutePath)  
println configFile.path  
configFile = file(new File('src/config.xml'))  

18.复制文件
task copyTask(type:Copy){  
    from 'src/main/webapp'  
    into 'build/explodedWar'  
}  

























  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Idea是一个功能强大的集成开发环境(IDE),而Gradle是一个灵活的构建工具。将Idea与Gradle结合使用可以提高开发效率和代码管理能力。 首先,通过在Idea中导入或创建Gradle项目,我们可以轻松地管理项目的依赖关系。通过Gradle的依赖管理机制,我们可以在项目中引入所需的第三方库,而不必手动下载、配置和添加它们。在Idea中,我们可以通过简单的配置来更新和更新这些依赖项,以确保项目始终使用最新版本的库。 其次,通过在Idea中启用Gradle插件,我们可以使用Gradle的强大功能来构建和运行我们的项目。我们可以通过Gradle脚本定义和自定义构建任务,例如编译代码、运行测试、生成文档等。在Idea中,我们可以直接在Gradle工具窗口中查看和运行这些任务,而不必在终端中手动执行Gradle命令。 另外,Idea还提供了对Gradle语法高亮、代码提示和错误检查。它可以帮助我们更轻松地编写和修改Gradle脚本,并防止常见的语法错误。此外,Idea还提供了对Gradle的自动补全功能,以帮助我们更快地查找和使用Gradle提供的功能。 最后,Idea还集成了对Gradle构建过程的可视化和调试支持。我们可以通过在Idea中设定断点和调试标记,以及查看构建过程的详细日志,来分析和解决构建问题。这使得调试Gradle构建变得更加方便和高效。 总的来说,Idea结合Gradle使用可以帮助开发者更好地管理项目依赖、构建项目、编写和调试Gradle脚本。这种结合能够提升开发效率和代码管理能力,是现代软件开发中常用的工具组合之一。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值