web-dev-qa-db-ja.com

フォルダ名と異なるGradleサブプロジェクト名

マルチプロジェクトビルド(フラットな階層)の一部であるサブプロジェクトがいくつかあります。フォルダー名とは異なる名前を設定したいです。ただし、インクルード(setting.gradle)では、フォルダー名を指定する必要があります。そうしないと、フォルダー名が見つかりません(コンパイルプロジェクト( ':ProjectName')と同じ)。

Project.nameを設定しようとすると、読み取り専用であることがわかります。その理由は、Antから変換しているため、Eclipse IDEで同じ名前を使用したいからです。成果物に関しては、jar.artifactNameを使用して任意の名前を設定します。

ありがとうございました、

48
Greg Hill

プロジェクト名はsettings.gradleでのみ変更できます。例えば:

include "foo" // or `includeFlat`, doesn't matter

// always good to nail down the root project name, because
// the root directory name may be different in some envs (e.g. CI)
// hence the following even makes sense for single-project builds
rootProject.name = "bar" 

// change subproject name
project(":foo").name = "foofoo"

または、includeステートメントで目的のプロジェクト名を使用し、後でプロジェクトディレクトリを再構成できます。

include "foofoo"

project(":foofoo").projectDir = file("foo")

背景を説明するために、includeincludeFlatの唯一の違いは、プロジェクトのprojectDirに異なるデフォルトを使用することです。それ以外は同じです。

詳細については、 Gradle Build Language ReferenceSettingsを確認してください。

71