首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从多模块项目中提取子项目名称

从多模块项目中提取子项目名称
EN

Stack Overflow用户
提问于 2021-06-26 00:34:41
回答 1查看 68关注 0票数 0

我正在尝试从Gradle multi-module项目中提取子项目名称,并将它们放入以下多模块项目的列表(即["services", "shared"] )中

代码语言:javascript
复制
> gradle -q projects

------------------------------------------------------------
Root project 'multiproject'
------------------------------------------------------------

Root project 'multiproject'
+--- Project ':services'
\--- Project ':shared'

To see a list of the tasks of a project, run gradle <project-path>:tasks
For example, try running gradle :api:tasks

到目前为止,我已经创建了一个gradle任务,我正在获取细节,但我无法从DefaultProject_Decorated中提取项目名称,我试图在gradle文档中查找,但没有太多帮助。

代码语言:javascript
复制
task('extractSubprojectName') {
    def subProjects = []

    println rootProject.getSubprojects() // [project :'services', project :'shared']
    println rootProject.getSubprojects().getClass() // class java.util.TreeSet

    rootProject.getSubprojects().each { module -> 
        println "Module : " + module // Module : project :'services'
        println "Module Class: " + module.getClass() // Module Class: org.gradle.api.internal.project.DefaultProject_Decorated

        // I am trying to achieve something like below 
        // subProjects.add(module.getProjectName()) // of course getProjectName() is madeup name which doesn't exits in DefaultProject_Decorated

       // - business requirement on subProjects - 
    }
}

希望有更好的解决方案吗?否则,我必须添加逻辑将其转换为字符串类型,然后从中提取名称。

EN

回答 1

Stack Overflow用户

发布于 2021-08-04 09:11:23

从它的source code来看,getName可能就是你想要的:

代码语言:javascript
复制
tasks.register("zz") {
    doLast {
        println rootProject.getSubprojects()
        println rootProject.getSubprojects().getAt(0).getName()
        println rootProject.getSubprojects().getAt(0).getName().getClass()
    }
}
代码语言:javascript
复制
$ ./gradlew zz

> Task :zz
[project ':aa', project ':bb']
aa
class java.lang.String

BUILD SUCCESSFUL in 684ms
1 actionable task: 1 executed
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68134378

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档