2013-07-30 1 views
2

У меня есть проект pure-Java (A) и проект GWT (B), созданный как многомодульный проект GWT, как описано here.Многомодульное приложение GWT, не компилируемое при изменении зависимого модуля

Когда я запускаю mvn install в первый раз, компиляция, то B выполняет полную компиляцию GWT. Однако, если я что-то изменяю в A, тогда B не компилируется, как я ожидал бы; Я получаю

[INFO] <module> is up to date. GWT compilation skipped. 

Если включить <force>true</force то компилируется и я могу видеть мои изменения.

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

ответ

1

Я не удивлюсь, если инкрементный строит сломаны в GWT-Maven-плагин, так же, как почти во всех Maven плагин там: https://cwiki.apache.org/confluence/display/MAVEN/Incremental+Builds

Там записка об этом в источниках: https://github.com/gwt-maven-plugin/gwt-maven-plugin/blob/d6464421d9ceb815db2d594ae0bf2d9ca07a1643/src/main/java/org/codehaus/mojo/gwt/shell/CompileMojo.java#L390

Я склонен согласиться с тем, что maven-компилятор-плагин нарушается аналогичным образом, вы должны делать clean в любом случае в этой ситуации. В качестве альтернативы, если вы знаете, что изменение соответствует с вашим кодом и не должно изменять вывод модуля maven-compiler-plugin, а затем принудительно скомпилировать GWT, передав -Dgwt.compiler.force в командной строке.

+0

Хм. Я искал способ сделать компиляцию только тогда, когда основной проект A был изменен, а если нет. Я скомпилирую свой проект GWT «в фоновом режиме» как часть сборки xcode и хотел бы, чтобы все было скомпилировано только при необходимости. Думаю, мой вариант использования не такой, как у большинства. – funkybro

+0

Я думаю, что всем нам нужна рабочая инкрементная сборка, ее просто нет в Maven (при условии, что она может быть исправлена, о чем я сомневаюсь) –

+0

Этот сценарий работает при использовании обычной сборки Ant? – funkybro

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