Gradle无秘密之SourceSet
Gradle SourceSet
java插件
在讲source set之前,不得不提一下java插件,因为source set这个概念是由java插件引进的。那当然,要使用java插件很简单,只需要在build.gradle文件中 使用apply plugin:"java"
引入java插件即可
Source Sets
source set说白了就是一组源文件放在一起,这样能够一起编译和执行。而源文件包含了java的源文件(即.java文件)和资源文件(如: .cfg, .properties)
Java Plugin定义了两个标准的source sets。 main 和 test。main这个source set包含了我们的java源代码,我们可以将这个source set里面的文件编译成JAR包。 而 test source set包含了测试的代码,我们可以使用junit来编译和执行。
默认的项目结构
src/main/java production java srouce
src/main/resources production resources
src/test/java test java srouces
src/test/resources test resources
那么如何修改我们的项目结构呢? 还有,如果想要自定义source set的时候,那应该要怎么做呢?
修改项目结构
在build.gradle 添加如下配置既可以修改默认的source set
srouceSets {
main{
java{
srcDir 'src/java'
}
resources{
srcDir 'src/resources'
}
}
}
这样子的话,项目的结构就会变成
src/java
src/resource
而不再是原来的
src/main/java
src/main/resource
自定义srouce set
srouceSets {
mySourceSet{
java{
srcDir 'src/mySourceSet/java'
}
resources{
srcDir 'src/mySourceSet/resources'
}
}
}
在这里我们自定义了我们的srouce set名唤 mySourceSet,因此我们项目的结构就会变成
src/main/java
src/main/resources
src/test/java
src/test/resources
src/mySourceSet/java
src/mySourceSte/resources
每当我们自定义了srouceSet之后,java plugin就会自动添加一些编译任务
- compileSourceSetJava
- compileSourceSetResources
- sourceSetClasses
类似的,如果我们想要编译我们自定义的源目录下面的源文件的话,我们需要使用
compileSourceSetJava这个任务~ 而不是简单的compile任务(compile任务是 main 这个source set的编译任务~ ~~ testCompile是test 这个source set的编译任务~ )
同样,对于资源文件的拷贝和classes及资源文件的集聚的任务都和main,test这两个source set对应的任务一样对应~~
转载请注明出处! 原文地址: http://webinglin.github.io