Недавно я разделил свое приложение GWT 2.4 на два модуля maven: domain и webapp .Модуль домена (в соответствии с его названием) содержит классы домена, а веб-приложение содержит все другие вещи, связанные с GWT. Webapp зависит от домена .
Все почти так же, как описано здесь: http://mojo.codehaus.org/gwt-maven-plugin/user-guide/multiproject.html
Когда я запускаю (из реактора):
mvn clean package
maven создает приложение WAR соответствующим образом: сначала оно компилирует домен , затем webapp , затем создает файл war, который может быть развернут на tomcat и работает нормально.Однако, если я пытаюсь запустить приложение в размещенном режиме:
mvn gwt:run
maven пытается разрешить зависимость от модуля domain в моем локальном и удаленном репозиториях.Поскольку я удалил его из локального репозитория, maven не может его найти и сборка (в режиме хоста) завершается неудачно.Конечно, я могу сначала установить модуль domain в мой локальный репозиторий, но он пахнет как грязный обходной путь для меня. Домен был намеренно удален из локального репозитория maven, чтобы убедиться, что хост-режим работает со старой (устаревшей) версией, взятой из локального репозитория, вместо работы с ранее созданным доменом .Артефакт.
Если модуль domain был установлен в моем локальном репозитории, после завершения mvn clean package
целевой каталог webapp содержит развернутую WAR с последней версией домен JAR.Когда я запускаю gwt:run
, новая версия доменного артефакта (в целевой) заменяется устаревшей версией, взятой из локального репо (я вижу изменения)!
Как это возможно?Это ошибка в плагине gwt maven?Есть ли способ избежать такого странного поведения плагина?