代码之家  ›  专栏  ›  技术社区  ›  mike rodent

如何获得根项目名称并将其提供给应用程序、测试和分发?

  •  0
  • mike rodent  · 技术社区  · 4 年前

    在构建.gradle很简单:

    println "project name $name"
    

    ... 但这在分布式版本的应用程序中是不可用的。我也不明白如何从内部测试和应用程序代码中轻松访问该值。

    名称应位于“设置.gradle“:希望这应该包含如下行:

    rootProject.name = 'MyProject'
    

    如果我想将此名称合并到测试和应用程序代码中,并确保该信息对应用程序的分布式版本可用,请使用 installDist 例如,在我看来,最好的方法可能是在测试、构建和分发之前,自动执行一项任务,从中提取信息设置.gradle并将其放入src/main/resources下的.properties文件中。

    我该怎么做?或者。。。有更好的方法吗?

    0 回复  |  直到 4 年前
        1
  •  0
  •   mike rodent    4 年前

    构建.gradle:

    task copySettingsGradle {
        doFirst {
            ant.copy(file: 'settings.gradle',
                    todir: 'src/main/resources',
                    overwrite: true,
                    failonerror: true)
        }
    }
    classes.dependsOn copySettingsGradle
    

    应用程序代码:

            URL settingsGradleURL = App.class.getResource( '/settings.gradle' )
            ConfigObject conf = new ConfigSlurper().parse( settingsGradleURL )
            def projectName = conf.rootProject.name
    

    ... 这一点的关键在于它在渐进式开发和分布式应用程序中都能工作。。。