2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

git submoduleでsub側の親build.gradle.ktsが邪魔なときに無視する方法

Posted at

別リポジトリを取り込むことでコードの共通化ができるなど、

便利と言われるgit submoduleですが、

取り込まれる側(マルチプロジェクト構成)の親build.gradle.ktsって邪魔じゃないですか?
(Kotlinのバージョン指定が重複してます、とか言われる。。)

そういうググっても出てこなかったので、書きます。

環境

  • Gradle 6.8.1
  • Kotlin 1.5.20
  • Git 2.28.0
  • 取り込む側も、取り込まれる側もマルチプロジェクト構成
取り込まれる側.
sub-project/
|-sub-project-child
| |
| -gradle.gradle.kts
|
-build.gradle.kts
取り込む側.
root-project/
|-root-project-child
| |
| -gradle.gradle.kts
|
|-sub-project/
| |-sub-project-child
| | |
| | -gradle.gradle.kts
| |
| -build.gradle.kts // …(B)
|
-build.gradle.kts // …(C)
-settings.gradle.kts // …(A)

いきなり解答

(A)settings.gradle.kts
rootProject.name = "root-project"

include(
    ..
    ":custom-name"
)

project(":custom-name").projectDir = file("sub-project/sub-project-child")

これで、sub-projectのbuild.gradle.ktsに悩まされずに、欲しかったsub側の小プロジェクトだけをroot側で取り込むことができました。

(おまけ)エラーが出る例

(エラーが出る例)(A)settings.gradle.kts
rootProject.name = "root-project"

include(
    ..
    ":sub-project:sub-project-child"
)

こうやって子プロジェクトを読み込むケースもありますが、
こうすると、build.gradle.kts(B)も読み込んでしまい、build.gradle.kts(C)と重複してKotlin versionなどが定義されていることでエラーが発生しました。

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?