我想为不同品牌打包Grails应用程序。在生成war文件时,我想传递一些引用某个品牌的自定义参数,并通过加载该品牌的样式表来设置应用程序的样式。
我在线阅读,我发现的一种方法是使用maven。我尝试使用maven,但我在最初编译应用程序时遇到困难。错误是
Failed to execute goal org.grails:grails-maven-plugin:2.2.1:maven-compile
(default-maven-compile) on project foreAction: Forked Grails VM exited with error.
我对现在采取的方法感到困惑。我搜索了上述错误并尝试了不同的解决方案,但似乎没有任何效果。
如果不使用Maven有不同的方法,我愿意试一试。
答案 0 :(得分:1)
您可以随时使用scripts/_Events.groovy
挂钩事件并替换适当的CSS /资产。 documentation解释了如何挂钩构建事件。
scripts/_Events.groovy
中的代码可能如下所示:
// This is called after the staging dir is prepared but before the war is packaged.
eventCreateWarStart = { name, stagingDir ->
// place your code here that copies your resources to the appropriate location in the staging directory.
Ant.copy(
file: System.getProperty('somePassedInFile'),
toFile: "${stagingDir}/assets/stylesheets/whatever.css",
overwrite: true
)
}
然后你可以从grails prod war
传递源文件的值,如下所示:
grails prod war -DsomePassedInFile=/path/to/file.css
希望这有助于至少让您了解如何实现这一目标。 (所有都写在我的头顶,所以要小心错别字等。)