2009-05-07 5 views
24

Кто-нибудь знает, как (легко) «переименовать» существующее приложение Grails? Я сталкиваюсь с этим, потому что мой провайдер PaaS не позволяет мне удалить подписку ... Поэтому я хочу развернуть мое приложение под другим именем.Как переименовать существующее приложение Grails

Конечно, я могу сделать это вручную, но я думаю, что это могло бы быть полезным «верхнего уровня» сценарий (т.е. «Grails переименовать приложение 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"

Любые намеки, или информацию о текущих инициативах в этой области приветствуются

Greetz,

Johan

ответ

33

Мне пришлось это сделать, я переименовал каталог верхнего уровня проекта в новое имя и отредактировал файл application.properties. Существует строка app.name = youroldappname, которая должна быть изменена.

На самом деле вам даже не нужно переименовывать каталог. У вас может быть другое имя веб-приложения.

+1

работал как шарм !!! –

+4

Возможно, будет удобно выполнить «grails clean» после переименования. –

0

Хм, я знаю, что это не выглядит забавным, но не должно быть сложно (просто скучно) переименовать каталог проекта, а затем все файлы с именем вашего проекта в них (вы можете игнорировать .tmproj, если вы не используете TextMate). Наконец, быстрый поиск по всем файлам для старого имени проекта для замены, и вы должны иметь его.

Oh! Во-первых, если вы используете IDE, вам нужно удалить проект из среды IDE, а затем повторно импортировать его после завершения процедуры переименования.

Насколько я знаю, ничего конкретного проекта не хранится нигде, кроме каталога проекта и ниже, поэтому это очень конечный набор для поиска, и вам нужно сделать это только один раз (надеюсь).

Не очень элегантный, я знаю, но грубая сила действительно имеет свои цели.

0

Я использовал метод грубой силы, и это сработало для меня. Взял 5-10 минут, чтобы найти все файлы с именем в нем и заменить его на новый. Кроме того, Netbeans был в порядке. Единственное, что изменилось, это номер порта, который мне пришлось изменить снова.

0

Просто переименование работ, за исключением случаев, когда вы используете плагины. Они будут сохранены в папке $USER_HOME/.grails/$GRAILS_VERSION/projects/OLDNAME.

Итак, после переименования вашего проекта вы «потеряли» свои плагины. Я не пробовал переименовать папку плагина, но просто установил все свои плагины (как минимум с Google App Engine и gorm-jpa).

0

Если только изменить имя веб-приложения недостаточно, вы можете попробовать грубый путь - сделайте резервную копию раньше. (В папке рабочего пространства)

zip -r oldname.zip oldname/ 

Тогда, в затмение/Ггц, используйте

Отключить проект, Сборки автоматически Поиск, Файл с текстом «Старое_имя», Искать правой кнопкой мыши на результаты поиска, Заменить все, ... "newname"

Закройте затмение и переименуйте все папки в новое название проекта. В режиме Unix/Mac

find . -name "oldname" 

и mv несколько результатов, чтобы правильно отражать новые имена.

Для меня это работало как шарм, но убедитесь, что название вашего проекта не является ключевым словом и является поистине уникальным.

Смежные вопросы