天天看點

gradle插件Java,Java Gradle插件

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{}閉包裡添加即可。