微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

访问BuildConfig中的设置

如何解决访问BuildConfig中的设置

| 是否可以通过某种方式访问​​
BuildConfig.groovy
中的
Config.groovy
中指定的属性? 在打包过程中,我需要复制一些引导文件,并且目标目录取决于指定的环境。由于我需要在应用程序引导期间访问这些文件,因此我想在“ 0”中定义路径,而不要复制它。     

解决方法

访问诸如“ 0”中定义的“ 3”之类的属性的常用方法是
def bootStrapPath = org.codehaus.groovy.grails.commons.ConfigurationHolder.config.bootstrap.path 
我还没有尝试过
BuildConfig.groovy
,但是如果它不起作用,那是因为执行executed1ѭ时尚未读取read0ѭ。在这种情况下,您需要自己阅读。 ѭ9的实现应向您展示如何执行此操作。     ,如果说打包过程是指生成WAR文件,那么我已经能够使用Grails脚本/事件将文件复制到其他位置。例如,生成WAR时需要将一个文件复制到WEB-INF / classes文件夹,因此我在/ scripts文件夹下创建了一个Events.groovy文件,内容如下:
// Copy liquibase changelog.xml to classpath folder
eventWarStart = {warName ->
  if (grailsEnv == \"production\") {
    println \"Copying database migration files to classpath!\"
    Ant.copy(toFile: \"${classesDirPath}/changelog.xml\",filtering: true,overwrite: true) {
      fileset(file: \"${basedir}/grails-app/migrations/changelog.xml\")
    }
    Ant.copy(toDir: \"${classesDirPath}/releases/\",overwrite: true) {
      fileset(dir: \"${basedir}/grails-app/migrations/releases/\")
    }
  }
}
如您所见,您可以访问环境。 如果这不是您的意思,请忽略我的回答。     ,你可以这样做:
System.getProperty(\'grails.env\')
检索当前环境。     ,我找到的唯一解决方案是我自己读ѭ0Don(如Don所提到的)。这是我的两行解决方案:
def directory = new File(getClass().protectionDomain.codeSource.location.path).parent
def config = new ConfigSlurper(grailsSettings.grailsEnv).parse(new File(directory + File.separator + \"Config.groovy\").toURI().toURL())

println config.bootstrapPath
    

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。