SourceSet
ソースをアプリケーションコード、単体テスト、結合テストなど、それぞれ同じ場所に置く必要がないソースをグループ化したもの。
名称としては Gradle でビルドできるいろいろな言語に出てくるが、Java あるいは JVM 言語とそれ以外では別物と考えたほうが良い。
外の世界には SourceSetOutput で出力されて、class file および resource file が対象となる。
実際に assemble タスク を実行して jar ファイルの中身を見てみると class file および、 resources ディレクトリ以下のものが含まれているのがわかる。
Gradle コード でのクラス図
Javaの SourceSet
https://gyazo.com/c63f897c1695aa9e9755a01a86a057d8
scala の SourceSet
https://gyazo.com/3b2520799dab1d1d7cbf51eab1758ce1
c++ の SourceSet
LanguageSourceSet 以下に他の native plugin の SourceSet がぶら下がる
https://gyazo.com/2060d9f51678a764f243fcb09a5ed558