Gradle子项目名称与文件夹名称不同

Gre*_*ill 52 directory subproject gradle

我有几个子项目是多项目构建(平面层次结构)的一部分.我想将它们的名称设置为与其文件夹名称不同.但是在include(setting.gradle)中,它必须具有文件夹名称,否则它将找不到它(对于编译项目(':ProjectName')也是如此).

如果我尝试设置project.name,它会告诉我这是只读的.原因是我们正在从Ant转换并希望为Eclipse IDE保留相同的名称.到目前为止,我们使用jar.artifactName来设置我们想要的任何名称.

谢谢,

Pet*_*ser 77

项目名称只能在中更改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"
Run Code Online (Sandbox Code Playgroud)

或者,您可以在include语句中使用所需的项目名称,稍后重新配置项目目录:

include "foofoo"

project(":foofoo").projectDir = file("foo")
Run Code Online (Sandbox Code Playgroud)

为了让一些背景,之间的唯一区别include,并includeFlat为他们使用的项目不同的默认值projectDir.否则他们是一样的.

有关详细信息,请Settings参阅Gradle Build Language Reference.

  • 什么版本的Gradle可以用于此目的?我正在使用1.12并获得"带路径的项目":在根项目'bar'中找不到foo'." `project(':foo')`在`build.gradle`里面肯定存在,我在`project(":foo")之前也有`include"foo"`. (4认同)
  • 一旦你将项目名称改为`foofoo`,它就是`project(":foofoo")`. (3认同)

Mah*_*zad 6

这相当于Peter Niederwieser的答案的Kotlin DSL

设置.gradle.kts

rootProject.name = "MyApp"

include(":Narengi")
project(":Narengi").name = "Bunny"

// OR

include(":Bunny")
project(":Bunny").projectDir = file("Narengi/")
Run Code Online (Sandbox Code Playgroud)