update:2019-1-11 Author:要你命三千又三千 type:学习笔记(重点)
文章目录
问题一:为什么要使用java中使用gradle
gradle是一个灵活的构建框架。而开发java的流程大多是(依赖第三库,编译源代码,进行单元测试,打包发布)由于,每一个工程的创建都差不多,gradle 可以避免每个java工程里做重复的工作,为我们设计 了通用的java项目流程,方便构建,第三方库的自动添加(简单配置等)。
应用java插件(gardle的内部插件的应用方式)
apply plugin:‘java’
作用:java插件就为工程添加了很多默认的设置与约定。
java插件约定的项目结构
如果使用gradle 来构建项目必须遵循约定。
为什么:java插件进行构架时,至于约定的目录才可以找到我的 javal类的位置,资源的位置,然后才能进行编译
默认目录:
- src/main/java 项目源码的存放目录
- src/main/resources打包的资源文件存放目录。(配置文件,图片等)
- src/test/java 单元测试用例存放目录
- src/test/resource 测试用到的文件目录
配置第三方依赖
1.配置仓库
这里的作用是:告诉gradle在Maven 中心库中寻找我们依赖的Jar包
这里需要说明是:以上论述了所有6获取库的方式。
举例:
如何在自己公司的私有Jar,在自己搭建的Maven私服上下载(无密码下载方式)
2.指定依赖包
这里的GAV(简称)标识了唯一的包
简写方式:
dependcies{
compile ‘com.squareup.okhttp3:okhttp:3.0.1’ // 去掉名称用“:”隔开
}
gradle 提供的依赖配置
java 插件可以为不同的SourceSet在运行与编译是指定不同的依赖
格式:
格式的使用方式举例:
![](/qrcode.jpg)
dependencies{
//不同的Sourceset指定不同的依赖
mainCompille ‘com.squareup.okhttp3:okhttp:3.0.1’//为main指定编译依赖
vipCompile ‘com.squareup.okhttp:okhttp:2.5.0’ //为vip指定编译依赖
}
添加本地项目依赖
说明:项目依赖是一个Gradle项目(现在 setting文件中配置过)
dependencies{
compile project(’:example63’)
}
效果是:依赖后项目中的java类可以为你所用,就像自己项目中的类一样
文件依赖(依赖一个Jar包文件)
举例
depnedencies{
compile files(‘libs/ex63_.jar’,‘lib/ex63_2.jar’) //使用file的形式来添加文件依赖
}//作用:j将libs文件下的文件添加掉依赖
或者:使用统配符添加所有依赖
dependencies{
compile fileTree(dir:‘libs’,include:’*.jar’) //使用fileTree的形式来添加文件
}//作用:将libs下的所有jar都会被依赖
构建一个java项目
//执行命令行,来构建一个 任务
gradle build
//结果:在build/libs生成jar包(这是java的生成目录)
//生成了:命令构建l了这个项目,生成了 build 文件夹,其中不但含有 jar 包,
//还有 tar\zip.bat等,也有 .class 文件
补充:
常见任务
clean 任务
作用:删除build目录以及其他构建的生成的文件(就是删除了gradle build的结果)
assemble 任务
作用:编译和打包(不执行单元测试),根据不同的项目类型打包生成不同的文件(Android 打包生成apk文件)
check 任务(顾名思义执行单元测试)
作用:针对不同的项目有不同的单元的测试方法,进行测试。
javadoc 任务
作用:生成 java格式的 doc api 文档(一个java格式的 api 文档)
sourceSet源集概念(重点与难点)
问题一:什么是sourceSet(–源代码集合–源集)
即:一个java源代码文件与资源文件的集合
作用:
- 从源集内部的角度:可以通过设置源集的属性,更改源集的java目录和资源目录
- 从源集本身的角度:可以针对不同的业务和应用对源代码进行分组
内置的两个标准源集
main (主业务产品)
test (主要用于单元测试业务)
问题二:如何配置和访问源集
1.通过sourceSets{}闭包来访问和配置源集
2.通过Project下的sourceSets属性
apply plugin:'java'
sourceSets{ //sourceSet本质是一个容器SourceSetContianer
mian{ //main 源集的闭包配置
//配置Main SourceSet配置
}
}
补充
常见的源集属性
实践修改
java代码目录和资源目录(根据以上属性)
参考:java插件提供的java构建任务
补充
使用gradle实现java项目的多项目构建
步骤一:识别项目结构(这里的根项目也带有build.gradle 文件)
步骤二:配置多项目构建的配置
步骤三:在app项目中的build.gradle 中添加项目依赖
步骤四:使用base项目中的类
添加导入即可
小的知识点:
在为所有子项目统一配置属性(在根build.gradle 进行统一指定)
subprojects{
apply plugin: 'java'
repositories{
mavenCentral()
}
dependencies{
compile ''
}
}
问题:如何发布构件
问题解析:就是如何发布一个库工程(一个jar 给其他工程使用,称之为构件)
- 发布方式:有本地目录,Maven库,Ivy库
- 构架可以是:jar,zip包,WAR等
这里省略关于项目构件发布的配置gradle 文件编写。
问题:通过gradle来生成IDE的配置文件
应用内置插件
apply plugin:‘idea’
apply plugin:‘eclipse’
执行task :gradle idea 即可生成配置文件