Создать войну Grails без номера версии

Как создать военный файл Grails, чтобы у него не было номера версии

(например, foo-0.1.war)

прикреплен к концу, когда я выполняю команду «войны Грааля»?


person Community    schedule 02.10.2008    source источник


Ответы (7)


Я думаю, вы можете указать название войны в команде войны.

grails war foo.war

Также проверьте последнюю документацию по Grails, чтобы узнать, где установить этот параметр в качестве параметра конфигурации. Подробности смотрите в других ответах.

person Community    schedule 02.10.2008
comment
Примечание: при этом по умолчанию файл WAR будет скомпилирован не в каталог target, как можно было бы ожидать, а в каталог вашего проекта. Однако вы также можете указать путь, см. grails.org/doc /2.2.1/ref/Command%20Line/war.html - person peterp; 08.07.2013

Если кто-нибудь наткнется на эту статью и использует Grails 1.3.x, параметр конфигурации изменился с grails.war.destFile в Config.groovy на grails.project.war.file в BuildConfig.groovy.

Также имя файла относится к рабочему пространству проекта, поэтому оно должно иметь значение, подобное:

grails.project.war.file = "target/${appName}.war"

Это соответствует последней документации по Grails.

person Community    schedule 03.02.2011
comment
это также актуально для Grails 2.x - person winna; 02.09.2014

Из Документации по Grails, Глава 17, Развертывание< /сильный>

Существует также множество способов настройки создаваемого WAR-файла. Например, вы можете указать путь (абсолютный или относительный) к команде, которая указывает, куда поместить файл и какое имя ему дать:

grails war /opt/java/tomcat-5.5.24/foobar.war

Кроме того, вы можете добавить строку в Config.groovy, которая изменяет расположение и имя файла по умолчанию:

grails.war.destFile = "foobar-prod.war"

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

person Community    schedule 21.10.2008
comment
Это на самом деле лучший ответ - person Johann Zacharee; 24.10.2008

Сворачивание других отличных ответов. Есть несколько вариантов:

Явно установите его в командной строке: grails war foo.war

Установите пустое свойство app.version в application.properties, чтобы война называлась foo.war.

Явно задайте имя войны, используя свойство grails.war.destFile в Config.groovy.

person Community    schedule 13.05.2009

Grails 3.x переключился на gradle и использует подключаемый модуль war. Вы можете просто указать такое имя в файле build.gradle:

war {
    archiveName 'foo.war'
}
person Community    schedule 01.09.2016
comment
Для Grails 3 вы должны использовать «имя_архива» вместо «архив». stackoverflow.com/questions/33621966 / - person Zan; 24.01.2018

Еще один способ создать файлы war без номера версии — оставить свойство app.version пустым в application.properties.

person Community    schedule 31.10.2008
comment
Это работает и является лучшим ответом, потому что это основной источник этой информации. - person Tobia; 11.12.2014

Я немного опоздал на вечеринку... но тем не менее:

Я думаю, что причина удаления номера версии заключается в том, чтобы устранить необходимость переименовывать военный файл, чтобы он развертывался по «правильному» контекстному пути /appName. Если это так, то лучшим вариантом является использование имени файла войны версий, чтобы вы могли одновременно развернуть несколько версий на tomcat, используя следующий шаблон именования в grails-app/conf/BuildConfig.groovy:

grails.project.war.file = "target/${appName}##${appVersion}.war"

Как описано в http://tomcat.apache.org/tomcat-7.0-doc/config/context.html#Parallel_deployment

Этот метод применим к войнам в целом, а не только к войнам Грааля.

person Community    schedule 26.06.2019
comment
Свойство grails.project.war.file не работало для grails 4. - person user2782001; 13.12.2019
comment
Привет, @user2782001, теперь ты знаешь, как создать .war с контекстным именем пути? для граалей 4 - person Asif; 02.02.2021
comment
Я больше не использую Grails, но, возможно, он работает как Grails 3. - person Glushiator; 04.02.2021