0

在我的 settings.gradle 文件中,我最初有这个工作

include 'server', 'webapp'

我把它修改成这个,它就坏了

include 'server', 'webapp'

modifyProjectNames(rootProject, "sdi-")

def modifyProjectNames(project, prefix) {
  project.children.each {
        it.name = prefix + it.name
  }
}

它说“在根项目'SDI'中找不到路径':webapp'的项目”,所以我将文件修改为此

include 'master', 'sdi-webapp'

modifyProjectNames(rootProject, "sdi-")

def modifyProjectNames(project, prefix) {
  project.children.each {
        it.name = prefix + it.name
  }
}

我得到了同样的失败,但我在 settings.gradle 中没有 :webapp 所以它必须是我的主要 gradle 构建文件所以我现在也将该项目重命名为 :sdi-webapp 所以现在错误稍微更改为

Project with path ':sdi-webapp' could not be found in root project 'SDI'.

我有一个像这样的项目结构

SDI - 服务器 - webapp

我希望所有项目名称都是 sdi-server 和 sdi-webapp 等。但我希望调用目录

/SDI/server instead of /SDI/sdiserver
/SDI/webapp instead of /SDI/sdiwebapp

IE。在那里多余是没有意义的。

编辑

我在另一个项目上尝试了第一个答案,就像这样

include 'master', 'toneserver','webserver'

modifyProjectNames(rootProject, "sdi-")

def modifyProjectNames(project, prefix) {
  project.children.each {
        it.name = prefix + it.name
  }
}

rootProject.children.each {proj ->
  proj.projectDir = file(proj.name - "sdi-")
}

它只是失败了

Project with path ':toneserver' could not be found in root project 'stserver'

如果你浏览你的 build.gradle 文件并修改每个引用以也有前缀,这有点工作,这会破坏试图不重复自己的编程规则 :( :( 所以如果我想修改前缀,我必须做一个丑陋的查找和替换:(...ick。但它确实有效。

谢谢,院长

4

1 回答 1

1

作为一种解决方法,您可以尝试在包含调用中使用您喜欢的项目名称(SDI-...)并更改每个子项目的 projectDir:

rootproject.children.each{proj->
    proj.projectDir = file(proj.name - "SDI-")
}

干杯,雷内

于 2012-09-06T22:39:04.230 回答