【问题标题】:Gradle subproject name different than folder nameGradle 子项目名称与文件夹名称不同
【发布时间】:2013-12-06 08:42:09
【问题描述】:

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

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

谢谢,

【问题讨论】:

    标签: gradle directory subproject


    【解决方案1】:

    项目名称只能在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 Reference 中的Settings

    【讨论】:

    • 效果很好。非常感谢。我不得不说,随着对 gradle 的了解越来越多,我每天都越来越喜欢它。
    • 这适用于什么版本的 Gradle?我正在使用 1.12 并得到“在根项目 'bar' 中找不到路径为 ':foo' 的项目。” project(':foo')build.gradle 中肯定存在,而且我在project(":foo") 之前也有include "foo"
    • 我在 1.12 上遇到了与 Travis 相同的问题
    • 将项目名称更改为foofoo后,即为project(":foofoo")
    • 我希望它有办法继续使用旧的:projectOld:project2Old,但为 IntelliJ 创建一个不同的模块名称。当您有多个同名减去几个字符的子项目时,这将解决此问题
    猜你喜欢
    • 2012-01-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-26
    • 2018-07-05
    • 2013-04-14
    • 1970-01-01
    相关资源
    最近更新 更多