为了账号安全,请及时绑定邮箱和手机立即绑定

Gradle课程学习小结手记

标签:
Java

前提:
随着技术的发展,前端和后端都要使用到构建工具
没有自动化构建工具产生之前:

  • 依赖管理:将所有使用到的jar包放在lib目录下,少的话几十个,多的话成百上千,有用的,没用的,稍不留神就会出现版本冲突

  • 测试:能不写就不写

  • 打包:通过eclipse导出war包进行

  • 上传:通过ftp上传到服务器,解压,运行

自动化构建工具的种类(几种主流工具):

  • ant:编译,测试,打包
  • maven:依赖管理,发布
  • gradle:使用DSL(特定领域语言):groovy,具有灵活性和可扩展姓

项目流程:
图片描述

项目布局:
图片描述

Groovy
Groovy是用于Java虚拟机的一种敏捷的动态语言,它是一种成熟的面向对象编程语言,既可以用于面向对象编程,又可以用作纯粹的脚本语言,使用该种语言不必编写过多的代码,同时又具有闭包和动态 语言中的其他特性
Groovy兼容java语法,具有如下特性:

  • 句尾分号是可选的
  • 类和方法默认都是public的
  • 编译器给属性自动添加getter和set
  • ter方法
  • 属性可以直接用点号获取
  • 最后一个表达式的值会被作为返回值
  • ==等同于equals(),不会有NullPointerExceptions
  • 自带assert语句,assert version==2
  • 类型可选,def version=1
  • 括号是可选的,println(version)
  • 字符串,def s1='imooc',def s2="gradle version is ${version}" #可插入变量,def s3=''' my name is imooc''' #可换行
  • 集合API
list
def buildTools=['ant','maven']
buildTools <<'gradle'
map
def buildYears=['ant':2000,'maven':2004]
buildYears.gradle=2009
println buildYears.ant
  • 闭包
def c1={
    v->
        print v
}
def c2={
    print 'hello'
}

def method1(Closure closure){
    closure('param')
}

def method2(Closure closure){
    closure()
}

method1(c1);
method2(c2);

依赖管理
图片描述

解决版本冲突
查看依赖报告 :确定有哪些版本出现了冲突,gradle会默认最高版本的jar包,修改默认解决策略,当出现版本冲突时,直接构建失败,可以知道哪些出现了版本冲突

configurations.all{
    resolutionStrategy{
        failOnVersionConflict()
}
}

排除传递性依赖

compile( 'org.hibernate:hibernate-core:3.6.3.Final'){
    exclude group:" org.slf4.j",module:"slf4j-api"  //transitive =false

强制一个版本

configurations.all{
    resolutionStrategy{
       force ‘org.slf4j:slf4j-api:1.7.24’
}
}

发布
图片描述

  • 插入插件:maven-publish
  • 配置:要发布的内容,仓库地址等
  • 执行发布
点击查看更多内容
4人点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
软件测试工程师
手记
粉丝
9
获赞与收藏
40

关注作者,订阅最新文章

阅读免费教程

感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消