如何重命名现有的 Grails 应用程序

Posted

技术标签:

【中文标题】如何重命名现有的 Grails 应用程序【英文标题】:How to rename an existing Grails application 【发布时间】:2010-10-24 10:23:49 【问题描述】:

有人知道如何(轻松地)“重命名”现有的 grails 应用程序吗?我遇到了这个问题,因为我的 PaaS 提供商不允许我删除订阅...所以我想以不同的名称部署我的应用程序。

当然,我可以手动执行此操作,但我认为它可能是一个有用的“***”脚本(即“grails rename-app newappname”)

手动提示:

当我执行“grails create-app myappname”时,我可以看到 myappname 存在于以下文件(和文件名)中...当然这是由 create-app 脚本完成的,它替换了 @...@模板中的标记。我想一旦它们被替换,重命名并不是一件容易的事。

./.project: <name>myappname</name>
./application.properties:app.name=myappname
./build.xml:<project xmlns:ivy="antlib:org.apache.ivy.ant" name="myappname" default="test">
./ivy.xml:    <info organisation="org.example" module="myappname"/>
./myappname-test.launch:<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="myappname"/>
./myappname.launch:<listEntry value="/myappname"/>
./myappname.launch:<listEntry value="<?xml version="1.0" encoding="UTF-8"?> <runtimeClasspathEntry containerPath="org.eclipse.jdt.launching.JRE_CONTAINER" javaProject="myappname" path="1" type="4"/> "/>
./myappname.launch:<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="myappname"/>
./myappname.launch:<stringAttribute key="org.eclipse.jdt.launching.VM_ARGUMENTS" value="-Dbase.dir="$project_loc:myappname" -Dserver.port=8080 -Dgrails.env=development"/>
./myappname.tmproj: <string>myappname.launch</string>

当然……***目录名称是“myappname”

欢迎提供有关该领域正在进行的计划的任何提示或信息

问候,

约翰

【问题讨论】:

【参考方案1】:

我不得不这样做,我将我的项目***目录重命名为新名称并且 编辑了 application.properties 文件。有一行 app.name=youroldappname 应该更改。

实际上,您甚至不必重命名目录。您可以使用不同的网络应用名称。

【讨论】:

重命名后可能会很方便地执行“grails clean”。【参考方案2】:

嗯,我知道它看起来不好玩,但是重命名项目目录应该不难(只是无聊),然后重命名所有带有你项目名称的文件(你可以忽略 .tmproj 除非你使用文本伴侣)。最后,在所有文件中快速搜索要替换的旧项目名称,您应该拥有它。

哦!首先,如果您使用的是 IDE,则需要从 IDE 中删除项目,然后在完成重命名过程后重新导入。

据我所知,除了项目目录及其下方之外,没有任何特定项目存储在任何地方,因此搜索的集合非常有限,您只需执行一次(我希望如此)。

不是很优雅,我知道,但蛮力确实有它的用处。

【讨论】:

【参考方案3】:

我使用了蛮力方法,它对我有用。花了 5-10 分钟找到所有包含该名称的文件并将其替换为新文件。之后Netbeans也很好。唯一改变的是我不得不再次更改的端口号。

【讨论】:

【参考方案4】:

除非您使用插件,否则只需重命名即可。它们将存储在$USER_HOME/.grails/$GRAILS_VERSION/projects/OLDNAME 文件夹中。

因此,在重命名您的项目后,您“丢失”了您的插件。我没有尝试重命名插件的文件夹,但是安装所有插件也可以(至少使用 Google App Engine 和 gorm-jpa)。

【讨论】:

【参考方案5】:

如果仅更改 Web 应用名称还不够,您可以尝试粗略的方法 - 之前进行备份。 (在工作区文件夹中)

zip -r oldname.zip oldname/

然后,在 eclipse/ggts 中,使用

禁用项目,自动构建 搜索,文件,包含文本:“旧名称”,搜索 右击搜索结果,全部替换,...​​ "newname"

退出 eclipse 并将所有文件夹重命名为新的项目名称。在 Unix/Mac 上运行

find . -name "oldname" 

并 mv 少量结果以正确反映新名称。

对我来说它就像一个魅力,但请确保您的项目名称不是关键字并且相当独特。

【讨论】:

以上是关于如何重命名现有的 Grails 应用程序的主要内容,如果未能解决你的问题,请参考以下文章

将 Grails 与现有的 Web 应用程序集成

如何在我的项目中实现 Grails 的 Shiro 安全性

如何解决实体映射中的 Grails 错误重复列?在现有的 Postgresql 数据库上

如何使用 Gradle 设置多项目 Grails?

将现有的域类与 Spring Security 插件一起使用

将现有的域类与 Spring Security 插件一起使用