Существует способ, но он немного связан и полностью не документирован, так что это будет наш маленький секрет.
Скрипты create-app
и create-plugin
на самом деле довольно просты. Они создают новый пустой каталог и извлекают некоторые файлы jar из GRAILS_HOME/grails-resources-<version>.jar
, которые содержат различные файлы проекта, и распаковывают их в каталог проекта. Затем запускается integrate-with --eclipse
для создания файлов IDE для GGTS и для create-app
выполняется сценарий wrapper
для создания grailsw
и т. Д., Если вы не используете флаг --skip-wrapper
.
К концу разработки 2.3.0 Я добавил проверку скриптов для индивидуальной версии этих банок, и если один или несколько найденных, они используются вместо банок для акций. Чтобы использовать это, создайте папку в $HOME/.grails/<version>
с именем app-templates
. Так что для Grails 2.4.3 это будет $HOME/.grails/2.4.3/app-templates
. Чтобы избежать случайного удаления этого каталога, я бы фактически создал символическую ссылку с этим именем, указывающую на отдельный каталог (например, ln -s /path/to/app-templates.2.4.3 ~/.grails/2.4.3/app-templates
, но это необязательно. Вы также можете использовать символические ссылки для совместного использования одного набора переопределяющих банок для нескольких версий Grails.
Unzip $GRAILS_HOME/dist/grails-resources-2.4.3.jar
и у вас будет 5 файлов jar: grails-app-files.jar
(файлы приложения), grails-integration-files.jar
(файлы для сценария integrate-with
, например, файлы проекта Eclipse, файлы проекта IDEA и т. Д.), grails-plugin-files.jar
(файлы с плагинами) и grails-shared-files.jar
(файлы, используемые как приложениями, так и плагинами). Кроме того, у вас будет grails-wrapper-support.jar
, но это не то, что вы обычно хотите настроить.
Распакуйте каждый из 4 файлов jar и сделайте все изменения, которые вы хотите. Некоторые изменения, которые я имею в виду, - это удалить много комментариев из файлов conf, переместить URLMappings.groovy
из общего баннера в банку приложения, поскольку он редко необходим в плагинах, переместите DataSource.groovy
из общей банки в оба приложения и плагины и вырезать большую часть той, которая будет использоваться в плагинах, и несколько других изменений. Вы можете удалять файлы, перемещать их между банками и добавлять новые файлы, если хотите.
Это замечательно, спасибо! Просто чтобы уточнить, он не будет читать распакованные файлы, мне придется их переупаковать, так? Я предположил, что это так, но просто хотел быть уверенным. Теперь, чтобы перейти с Grails 2.2.1, я могу воспользоваться этим! :) Еще раз спасибо –
Правильно, я забыл последний шаг, который должен повторно застегнуть распакованные каталоги и заменить старые файлы jar этими. Используйте любой инструмент zip, который вам нравится распаковывать и упаковывать банки, но не забудьте сохранить расширение .jar и сохранить ту же структуру каталогов при повторной упаковке. –
Один последний комментарий, я заметил, что 'create-app' вытаскивал JAR из maven repo, и поскольку у нас есть локальное репетирование Artifactory, мы используем зависимости от прокси-сервера и храним локальные артефакты, я вносил изменения, как вы описали, и развернули локальную версию нашего репо. Запуск 'create-app' отлично работает для нас сейчас, и поскольку в Artifactory нам не нужно вручную заменять JAR. Отлично работает, спасибо! –