gpt4 book ai didi

grails - 基于BuildConfig.groovy中的Environment的WAR名称

转载 作者:行者123 更新时间:2023-12-02 14:41:12 25 4
gpt4 key购买 nike

我想根据appNameappVersionEnvironment.current的缩写来自动命名WAR文件。我在BuildConfig.groovy中设置了以下选项:

String currentEnvShortName = Environment.envNameMappings.find{it.value == Environment.current.name}.key

def f = new File("grails-app/conf/config.properties")
f.text = ""
f << "Current Env: ${currentEnvShortName}"

grails.project.war.file = "target/war/${appName}-${appVersion.toString().replaceAll(/\./,' ').split().join("-")}${currentEnvShortName}.war"

我将环境写入文件,以便不必等待 war命令执行。 编辑:使用GGTS命令行。首先,我认为一切正常。我通常的部署过程如下:
  • 运行grails clean
  • 针对所需环境运行war命令
  • 在应用程序服务器
  • 上部署WAR

    但是,在清理之后,也可能在其他grails命令之后, Environment.current的值以我不了解的方式更改。第一次运行 dev命令时,它始终是 war。第一次之后,将再次正确检索环境名称。因此,我作为解决方法是:
  • 运行grails clean
  • 在所需的环境中运行war命令,但在启动
  • 后立即中断
  • 针对所需环境运行war命令
  • 在应用程序服务器
  • 上部署WAR

    我做错了什么还是一个错误?

    复制环境:

    GGTS 3.6.4发布

    Grails 2.4.2

    Groovy 2.3.10

    JDK 1.6.0_07

    编辑:我无法从常规命令行使用Grails进行复制。仅在Groovy Grails工具套件的内置命令行中会发生此行为。环境似乎在随机切换。

    编辑2:操作系统:Windows 7

    最佳答案

    好吧,我多次尝试了您的方案,但无法重现。但是,如果由于某种原因它不起作用,则可以使用另一种方法,如下所示:

    修改BuildConfig.groovy中的代码,如下所示:

    // Define a custom mapping so that you can easily extend for custom environments (which will not be possible via "Environment.current.envNameMappings"
    Map envNameMappings = [test: "test", development: "dev", production: "prod"]

    // Read the currrent environment from System property
    String currentEnv = System.getProperty("grails.env")

    println currentEnv
    // And this is the short name of environment you want
    println envNameMappings[currentEnv]

    关于grails - 基于BuildConfig.groovy中的Environment的WAR名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33833505/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com