【问题标题】:How can you set a custom display-name for your web.xml file in a Grails project如何在 Grails 项目中为 web.xml 文件设置自定义显示名称
【发布时间】:2014-08-22 17:42:56
【问题描述】:

默认情况下,grails 希望创建一个 web.xml 显示名称:

--

我希望这只是:

在使用普通的“grails war”或“grails dev war”命令时,如何为 web.xml 文件创建设置自定义显示名称值?

谢谢

【问题讨论】:

  • This 会有所帮助。或者您可以运行 grails install-template 并根据您的要求覆盖 web.xml 模板的显示名称。例如:/sample-app
  • 是的,我早些时候发现了,但无法让他的 _script 工作。似乎很像我在生成后更改它的解决方案。

标签: grails web.xml


【解决方案1】:

您可以通过监听的自定义事件来做到这一点。在您的项目中创建一个Scripts/_Events.groovy

import grails.util.Environment

// File: scripts/_Events.groovy
eventWebXmlStart = { webXmlFile ->
    println "Updating web.xml display-name (Env: ${Environment.current}"
    ant.echo message: "Change display-name for web.xml (Env: ${Environment.current}"

    def appName = grailsAppName
    if (Environment.current != Environment.PRODUCTION) {
        appName = "${grailsAppName.toLowerCase()}-${Environment.current.name.toLowerCase()}"
    }

    def tmpWebXmlFile = new File(projectWorkDir, webXmlFile)

    ant.replaceregexp (file: tmpWebXmlFile, match: "<display-name>(.+)</display-name>",
            replace: "<display-name>${appName}</display-name>")
}

这将在插件修改之前修改生成的web.xml。此时模板已被处理(因此@grails.project.key@ 已被替换为 appname-environment-version)。

脚本将打开临时的web.xml 并将整个&lt;display-name&gt; 元素替换为:

  • PROD -> 应用名称
  • TESTDEV -> appname-environment

感谢Mr Haki,他在install-templates之后描述了使用脚本

【讨论】:

    【解决方案2】:

    我不喜欢这个解决方案,但我最终在构建完成后运行了一个脚本来提取 web.xml 文件,对其进行更新并将其推回战争中,如下所示:

    export PROJECTHOME=/aldapps/data/www/jenkins/jobs/JobName
    rm -rf ROOT.war
    rm -rf /tmp/WEB-INF/web.xml
    cp projectName-DEV.war ROOT.war
    unzip ROOT.war WEB-INF/web.xml -d /tmp
    sed 's/projectName-$versionnumber/projectName/' /tmp/WEB-INF/web.xml > /tmp/WEB-INF/web2.xml
    rm -rf /tmp/WEB-INF/web.xml
    mv /tmp/WEB-INF/web2.xml /tmp/WEB-INF/web.xml
    cd /tmp
    zip -u ${PROJECTHOME}/ROOT.war WEB-INF/web.xml
    

    【讨论】:

      【解决方案3】:

      运行命令grails install-templates,然后编辑src/templates/war/web.xml

      【讨论】:

      • 您能否描述一下需要对web.xml 进行哪些更改?
      • 谢谢,我想要一些更可重复/自动化的东西,所以我可以将它作为我构建过程的一部分。
      猜你喜欢
      • 1970-01-01
      • 2018-07-05
      • 1970-01-01
      • 2020-10-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-11-14
      相关资源
      最近更新 更多