1.源码集合[SourceSet]概念
SourceSet—源代码集合,是Java插件用来描述和管理源代码及其资源的一个抽象概念,是一个Java源代码文件和资源文件的集合。通过源集,我们可以非常方便地访问源代码目录,设置源集的属性,更改源集的Java目录或者资源目录等。
有了源集,我们就能针对不同的业务和应用对我们源代码进行分组,比如用于主要业务产品的main以及用于单元测试的test,职责分明。它们两个也是Java插件默认内置的两个标准源集。
Java插件在Project下为我们提供了一个sourceSets属性以及一个sourceSet{}闭包来访问和配置源集。sourceSets是一个SourceSetContainer,我们可以查阅它对的API看它有哪些方法和属性供我们使用。sourceSets{}闭包配置的都是SourceSet对象。
apply plugin:’java’
sourceSets{
main{
//这里对main SourceSet配置
}
}
task ex{
sourceSets.all{
println name
}
}
源集有很多属性,通过这些属性我们可以很方便的访问或者对源集进行配置。
常用源集属性:
属性名
类型
描述
name
String
它是只读的,比如main
output.classesDir
File
该源集编译后的class文件目录
output.resourcesDir
File
编译后生成的资源目录
compileClasspath
FileCollection
编译该源集时所需的classpath
java
SourceDirectorySet
该源集的Java源文件
java.srcDirs
Set
该源集的Java源文件所在目录
resources
SourceDirectorySet
该源集的资源文件
resources.srcDirs Set 该源集的资源文件所在目录
我们看一下如何使用它们。比如我想更改我的源代码的存放目录,不想放在src/main/java目录下:
sourceSets{
main{
java{
srcDir ’src/java'
}
}
}
同理我们也可以修改资源文件的存放目录:
sourceSets{
main{
resources{
srcDir ’src/resources'
}
}
}
定义新的源集只需要在sourceSets{}闭包里添加即可。