目录
- 1. gradle构建学习系列
- 2. gradle构建学习系列
- 3. gradle构建学习系列
上一篇: https://www.jianshu.com/p/79bbb616981d
11. SourceSet的作用
SourceSet可以用于修改源文件目录结构,
java插件默认实现了两个SourceSet,main和test。
src {
main{
java
res
}
test{
java
res
}
}
修改:
sourceSets {
// 这个为别名
api
main {
java {
srcDir 'java-sources'
}
resources {
srcDir 'resources'
}
}
}
sourceSets {
main {
compileClasspath = compileClasspath + files(api.output.classesDirs)
}
test {
runtimeClasspath = runtimeClasspath + files(api.output.classesDirs)
}
}
12. gradle的常见命令
$ gradle init --type pom
Maven项目转换Gradle(在需要转换的根目录下执行此命令)
$ gradle build -x test
gradle 跳过测试直接编译
$ gradle idea
根据build.gradle和setting.gradle文件生成idea项目
$ gradle init --type java-application
创建一个gradle Demo的项目
$ gradle tasks --all
查看此项目有哪些任务如上,但上面的命令只能看到有group的,如果查看全部的任务需要使用参数all
$ gradle build
构建并单元测试
$ gradle build -x test
只构建不执行单元测试
$ gradle test
执行单元测试
$ gradle run
运行
$ gradle clean
删除build目录
$ gradle jar
打jar包
$ gradle clean war
打war包
13. gradle build之后成为jar还是war包
gradle clean war, gradle clean jar可以将其打成war包 或者jar包
14. 关于gradle wrapper 自定义问题
在build.gradle中添加 task wrapper(type: Wrapper) {.. 运行出现错误Cannot add task 'wrapper' as a task with that name already exists.。
解决方法:
在gradle 4 .8 以后,官方不再允许覆盖内置的构建任务:wrapper, init, help, tasks, projects, buildEnvironment, components, dependencies, dependencyInsight, dependentComponents, model, properties.
15. Gradle Wrapper
https://www.jianshu.com/p/d23ceed8f19d
- Wrapper是对Gradle的一层包装,便于在团队开发过程中统一Gradle构建的版本
- Wrapper启动Gradle时会检查Gradle有没有被下载关联,若没有就会从配置的地址下载并运行构建。
//file:build.gradle
task createWrapper(type: Wrapper) {
gradleVersion = '0.9-preview-1'
}
然后执行:
gradle createWrapper
目录下会生成
16. 加入本地jar文件
dependencies {
compile files('spring-core.jar', 'spring-aap.jar')
compile fileTree(dir: 'deps', include: '*.jar')
}
17. gradle 提示 : Plugin with id 'jetty' not found.
https://blog.csdn.net/sino_crazy_snail/article/details/79300058
添加如下代码:
buildscript {
repositories {
maven {
url "https://plugins.gradle.org/m2/"
}
}
dependencies {
classpath "gradle.plugin.org.akhikhl.gretty:gretty:2.0.0"
}
}
apply plugin: "org.akhikhl.gretty"
18. project 的name 有什么决定
项目/Project
一个项目代表一个组件(jar/war包),构建启动后Gradle会根据build.gradle实例化一个org.gradle.api.Project类
project属性
group/name(artifact)/version
属性的其他设置方法:ext或者直接在gradle.properties里面读取(一定是此名称)
project方法
apply 应用插件
dependencies 添加依赖
repositories 添加仓库
task 定义任务
19. 引入jetty包,启动报错
ASM ClassReader failed to parse class file- probably due to a new Java class file version that isn't supported yet问题
ASM ClassReader failed to parse class file- probably due to a new Java class file version that isn't supported yet问题
主要是spring 3 不支持jdk1.8 , 支持jdk1.7, 如果需要,需将spring 升级到4
20. dependencies{}
我们平时用的最多的大概就这个了,
- compile fileTree(include: [‘.jar’], dir: ‘libs’)*,这样配置之后本地libs文件夹下的扩展名为jar的都会被依赖,非常方便。
- 如果你要引入某个本地module的话,那么需要用compile project(‘×××’)。
-
如果要引入网上仓库里面的依赖,我们需要这样写compile group:’com.squareup.okhttp3’,name:’okhttp’,version:’3.0.1’,当然这样是最完整的版本,缩写就把group、name、version去掉,然后以”:”分割即可。
compile ‘com.squareup.okhttp3:okhttp:3.0.1’
注意dependencies的类型, 主要是compile, testCompile, runtime, implementation, provides, api
compile 在前,
testCompile在后, runtime在后
Gradle 使用技巧(三) - dependencies 的类型与区别
这篇文章讲解的知识只需要查看dependencies的类型。
PS: 若你觉得可以、还行、过得去、甚至不太差的话,可以“关注”一下,就此谢过!