gradle入门学习2——groovy基本语法与build.gradle(类似pom,但不是xml而是,groovy脚本语言)工程构建脚本配置解读

1、idea的tools工具菜单默认安装有groovy插件groovy console,用它写几个测试脚本

import org.assertj.core.util.Lists
/*groovy 兼容Java*/
def testList= Lists.newArrayList("456", "789")
testList.add('123')
System.out.println(testList)
/*并有一些自己的特性*/
def testList2= ["456", "789"]
testList2 << '123'
println testList2
/*支持断言*/
assert testList2.size()==3
println testList2.getClass()
/*定义闭包 */
def  myclosure={
    e->println e
}
/*自定义方法,入参-闭包,注意不要导入其它第三方包的Closure*/
def  mymethod(Closure closure){
    closure("jwolf")
}
/*调用方法-入参闭包*/
mymethod(myclosure)
/*也可以这样,不预先声明闭包*/
mymethod{
    e->println e+'2'
}

2、build.gradle构建脚本解读

/*该脚本默认都有一个gradle包里的Project实例*/

/*调用plugins方法,入参为闭包,闭包内调用id方法,等价于id('java')*/
plugins {
    id 'java'
    id 'war' 
}
/*调用set方法为Project实例的如下变量赋值*/
group 'com.jwolf'
version '1.0-SNAPSHOT'
/*调用set方法为其它对象变量赋值*/
sourceCompatibility = 1.8


/*调用repositories方法,入参为闭包,闭包内调用mavenCentral()这个无参方法,注意顺序优先本地仓库其次公司私服、阿里云私服等*/
repositories {
    mavenLocal()
    maven{
        url 'http://maven.aliyun.com/nexus/content/groups/public'
    }
    mavenCentral()
}


/*调用dependencies,入参为闭包,闭包内调用testCompile方法,方法入参为object[],group:'junit' 类似spring的注解@Value("${group:junit}")*/
dependencies {
      compile (group: 'ch.qos.logback', name: 'logback-classic', version: '1.2.3'){
        /*排除传递性依赖*/
        exclude group: 'org.slf4j', module: 'slf4j-api'
    }
    compile group: 'org.slf4j', name: 'slf4j-api', version: '1.7.22'
    testCompile group: 'junit', name: 'junit', version: '4.12'
}


configurations.all{
    resolutionStrategy{
        /*有冲突时报错?*/
        failOnVersionConflict()
        /*强制使用指定版本*/
        force group: 'org.slf4j', name: 'slf4j-api', version: '1.7.25'
    }
}

3、如下版本冲突时:默认使用最新版本jar,可以配置冲突时构建失败,强制版本,排除传递依赖等策略,参考上方配置

 

4、在构建脚本里增加一个自定义task

 

其它:构建生命周期,构建初始化阶段、配置阶段、执行阶段都有钩子方法

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值