Как включить режим производства в приложении GWT 2.7
Я хотел бы развернуть свое приложение GWT 2.7 на моем сервере через gwt-maven-plugin и jenkins. Но после процесса компиляции, когда я запускаю свое приложение, у меня появляется это сообщение об ошибке:
Couldn't load APPLICATION_NAME from Super Dev Mode
server at http://MY_IP:9876.
Please make sure this server is ready.
Действительно, режим super dev включен по умолчанию с версии 2.7. Итак, как отключить его, чтобы использовать производственный режим?
2 ответа
Хорошо, большое спасибо за ваш комментарий. Действительно, моя проблема касалась файлов *.nocache.js и *.devmode.js. Я начал свой проект (мой первый в GWT) в версии 2.6, и эти файлы были созданы (в режиме dev и super-dev-mode) и версионированы по моей вине. Поэтому, когда мой jenkins развернул мой проект, он использовал эти файлы, поэтому, даже если я выполнил mvn clean перед развертыванием, это не имело никакого эффекта.
Итак, я удалил эти файлы из своего проекта и выполнил чистую установку mvn перед развертыванием, чтобы исправить мою проблему.
Благодаря ответу Максима я тоже смог разобраться в своей проблеме.
При запуске :gwtDev и :gwtSuperDev в папке /war создаются дополнительные файлы (/WEB-INF/classes/, /projectName/ и /lib/). На данный момент это не создает проблем при использовании встроенного средства запуска Jetty.
Однако, когда я хотел создать файл .war и развернуть его вручную, я использовал задачу :war. Упомянутые ранее дополнительные файлы из /war затем копируются в папку /build и смешиваются со свежесгенерированными файлами с тем же именем. Это приводит к тому, что файл .war содержит дубликаты одних и тех же файлов, или старые файлы, которые, по вашему мнению, были удалены, или файлы, содержащие устаревшее содержимое.
В моем случае в мой военный файл копировались файлы *.devmode.js и другие, хотя их там не должно было существовать.
Я исправил эту проблему, добавив следующие три исключения, в которые папки из каталога /war включаются в файл .war.
war {
rootSpec.exclude("**/WEB-INF/classes/")
rootSpec.exclude("**/outer_planets/")
rootSpec.exclude("**/lib/")
}