Gradleで2つのフォルダを統合してビルドする方法

実現したいこと

次のようなディレクトリ構成でソースを管理しています。
root
ーcommon
ーv1
ーv2

v1、v2はバージョンによって異なる処理となり、commonはバージョンに依存しない共通的な処理になります。
ビルドによって次の組み合わせでjarファイルを生成したいです。
・common+v1 → v1.jar
・common+v2 → v2.jar
また、commonからv1またはv2を参照しますが、v1またはv2からはcommonは参照しません。
上記を実現するため
root
ーcommon
ーv1/build.gradle.kts
ーv2/build.gradle.kts

v1/build.gradle.kts

1sourceSets { 2 main { 3 java.srcDirs("src/main/java") 4 java.srcDirs("common/src/main/java") 5 } 6}

v2/build.gradle.kts

1sourceSets { 2 main { 3 java.srcDirs("src/main/java") 4 java.srcDirs("common/src/main/java") 5 } 6}

としてみましたが、v1/v2.jarにcommonが含まれませんでした。

ちなみに
root
ーcommon/build.gradle.kts
ーv1
ーv2

build.gradle.kts

1sourceSets { 2 main { 3 java.srcDirs("src/main/java") 4 5 if (v1の場合) { 6 java.srcDirs("v1/src/main/java") 7 } else if (v2の場合) { 8 java.srcDirs("v2/src/main/java") 9 } 10 } 11} 12

とした場合
・common+v1 → common.jar
・common+v2 → common.jar
となることはできました。
ただ、実際はbuild.gradle.ktsの中でv1、v2の分岐がもっと必要になるため、v1、v2側にbuild.gradle.ktsを持ちたいです。
ご教授のほどよろしくお願いします。

コメントを投稿

0 コメント