Gradle构建java工程来测试log4j 2-使用oschina的maven库提速

说gradle是当下很火热的构建工具,遂试试

Gradle是基于Groovy 高可扩展的DSL开发的企业级构建工具

特性

  • 声明式构建,惯例构建

  • 好多条,自行看

基本构建脚本

默认构建脚本名为build.gradle 可以用-b 参数指定 其他文件名

说是构建脚本,其实是符合dsl规范的 groovy 代码

groovy是与java无缝兼容的,so团队成员很容易上手使用,写构建脚本 就是 写 java 函数

Gradle中2个基本概念

project 和 task      
project项目是个逻辑概念可大可小,你可以组织任何你想要的东西 为 一个project ,有一些列的task    
task 任务 类似ant 的target,是构建可执行命令 任务,  一个 任务 是由一系列 动作action的组合 来执行的    
编写构建脚本其实就是组合排列 各个action和安排action中所需要的内容,java函数编程

从maven的pomx.ml文件生成gradle项目:

gradle init --type pom

type现阶段有限的支持从pom,java-library   ,scala-library, groovy-library, 默认为 basic类型的工程

build.gradle示例

//使用一些插件
apply plugin: 'java'
apply plugin: 'idea'
apply plugin: 'application'
version = '1.0'

/*
使用oschina的maven库 此处用 // 类型的注释会报错,不知为何
*/
repositories {
    maven{
        url "http://maven.oschina.net/content/groups/public/"
    }
    maven{
        url  "http://maven.oschina.net/content/repositories/thirdparty/"
    }
    mavenCentral()
}

//GBK 注释乱码
[compileJava, javadoc, compileTestJava]*.options*.encoding = 'UTF-8'

//依赖管理
dependencies {
    compile(
      'org.apache.logging.log4j:log4j-api:2.0-rc1',
      'org.apache.logging.log4j:log4j-core:2.0-rc1',
      'com.google.guava:guava:17.+'
    )
 
    testRuntime(
            'junit:junit:4.+'
            
    )
}


jar {
    manifest {
        //打包时 给manifest 一些属性
        attributes 'Implementation-Title': 'Gradle Tlog', 'Implementation-Version': version
    }
}

uploadArchives {
    repositories {
        flatDir {
            //发布jar包到 仓库中
            dirs 'C:\\Users\\qingfeng\\.m2\\repository\\org.qingfeng.loggertest'
        }
    }
}

sourceSets.all {
    println name
}


task startrun << {


}

//任务依赖
task taskName(dependsOn: 'taskXYZ') << {
    //一些列的action,其实你可以认为就是java代码
    String someString = 'mY_nAmE'
    println "Original: " + someString
    println "Upper case: " + someString.toUpperCase()
}

//使用创建好的task
task hello << {
    println 'Hello Earth'
}
hello.doFirst {
    println 'Hello Venus'
}
hello.doLast {
    println 'Hello Mars'
}
hello << {
    println 'Hello Jupiter'
}

//生成动态任务
4.times { counter ->
    task "task$counter" << {
        println "I'm task number $counter"
    }
}
task0.dependsOn task2, task3


//任务中使用自定义方法
task checksum << {
    fileList('../antLoadfileResources').each {File file ->
        ant.checksum(file: file, property: "cs_$file.name")
        println "$file.name Checksum: ${ant.properties["cs_$file.name"]}"
    }
}
task loadfile << {
    fileList('../antLoadfileResources').each {File file ->
        ant.loadfile(srcFile: file, property: file.name)
        println "I'm fond of $file.name"
    }
}
//Methods 任务可以调用方法
File[] fileList(String dir) {
    file(dir).listFiles({file -> file.isFile() } as FileFilter).sort()
}








转载于:https://my.oschina.net/jingxing05/blog/282700

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值