如何永久删除默认的Grails Web应用程序文件?

Tom*_*nal 5 grails grails-2.0

当我创建Grails应用程序时,它会在web-app目录中附带一些默认文件:

$ find web-app
web-app
web-app/css
web-app/css/errors.css
web-app/css/main.css
web-app/css/mobile.css
web-app/images
web-app/images/apple-touch-icon-retina.png
web-app/images/apple-touch-icon.png
web-app/images/favicon.ico
web-app/images/grails_logo.jpg
web-app/images/grails_logo.png
web-app/images/leftnav_btm.png
web-app/images/leftnav_midstretch.png
web-app/images/leftnav_top.png
web-app/images/skin
web-app/images/skin/database_add.png
web-app/images/skin/database_delete.png
web-app/images/skin/database_edit.png
web-app/images/skin/database_save.png
web-app/images/skin/database_table.png
web-app/images/skin/exclamation.png
web-app/images/skin/house.png
web-app/images/skin/information.png
web-app/images/skin/shadow.jpg
web-app/images/skin/sorted_asc.gif
web-app/images/skin/sorted_desc.gif
web-app/images/spinner.gif
web-app/images/springsource.png
web-app/js
web-app/js/application.js

(META-INFWEB-INF从输出中剪切的文件夹)

这些文件在我的应用程序造成混乱,并且还使用了常见的目录名css,images以及js,那我可能想用我自己的资源.

在过去我手动删除了这些,但是它们在运行后自行返回,grails upgrade在此过程中覆盖我自己的文件.

我看不出有任何理由保留这些文件.有什么我想念的吗?如果没有,我怎么能摆脱它们并确保它们永远不会回来?

Ove*_*ous 9

根据Burt Beckwith的说法,对此的正确解决方案是不使用grails upgrade.显然,这不再是升级Grails应用程序的推荐方法,因为它实际上只做了两件重要的事情,那就是碰撞版本然后清理应用程序以便重新下载所有内容.

次要升级

从该帖子开始,推荐的较小版本更改流程为:

  1. 编辑application.properties并更新版本.
  2. 然后运行grails clean以清除过时的文件.
  3. 最后运行grails compile,它会问你是否要升级Hibernate和Tomcat插件(如果它们被列入BuildConfig.groovy).

您也可以手动删除该文件夹下工作文件夹中的旧插件$HOME/.grails.

Burt提供的另一个提示是:

这是如果添加甚至简单grails.project.work.dir = 'target'BuildConfig.groovy.然后,所有的插件都在那里,你可以删除整个目标文件夹,所有的插件都将被重新安装和/或更新,所有的类都将被重新编译.

主要升级

重大更新的过程(例如将1.x应用程序升级到2.x应用程序)更复杂一些:

  • 在新版Grails中创建一个新的空应用程序
  • 在旧版Grails中创建一个新的空应用程序
  • 使用空的旧版应用程序来区分您当前的应用程序 - 这将告诉您删除,添加和更改的内容.复制新文件,删除应删除的内容,然后重新执行所做的更改.请务必阅读中级Grails版本的发行说明和升级信息,以便了解如何进行新的更改 - 例如HSQLDB - > DataSource.groovy中的H2等.不要盲目地做出相同的更改.

希望这最终将在官方文档中记录,因为它有意义,因为升级过程太复杂而无法实现自动化.


新应用程序

但是,这并不能解释如何处理新的应用程序.当然,您可以简单地删除所有Grails特定的文件(我建议除非您使用脚手架).

另一种选择是将所有Grails特定的文件移动到某个子目录中,然后手动修改(和/或重命名)main布局,CSS文件和资源链接以指向这些新位置.

如果您仍想使用脚手架,我建议将main.gsp布局复制到scaffolding.gsp,并创建一个新的资源模块,仅用于包含所有默认CSS和JS要求的脚手架.然后运行grails install-templates,它将为您提供脚手架的基本视图模板.然后,您可以轻松更改布局并添加或更新正确的资源模块.

最后,一旦你以你想要的方式获得了基本应用程序,请将其压缩并保存以供日后使用.这至少是一个只需要做一次这一切的简单方法.

注意
安装模板后,你可能不会需要artifactswar模板文件夹中,位于下src/templates.除非您知道使用它们,否则应删除它们.


最后要注意的是,请确保使用良好,强大的版本控制系统,例如git或mercurial.如果您不小心运行grails upgrade,这将使您可以轻松查看已修改的内容,并放弃或回滚您不想更改的文件.使用体面的IDE或GUI,您通常只需点击几下即可解决此问题.