Как стать автором
Обновить

Дружим GWT, Sonar + Clover

Java *
Любите ли вы GWT так, как люблю его я? Недавно возникла задача, повесить Sonar на проект, где используется GWT. Проблема возникла в тот момент, когда врубается Clover. Подробности этой истории под катом.

Итак, в чем соль. Clover копирует сорцы в папку target, дополняет их своим кодом и анализирует, после чего в дело вступает gwt-maven-plugin, который все это дело радостно пытается скомпилировать и мы получаем ошибку вида:
No source code is available for type ....; did you forget to inherit a required module?

И в качестве не найденного класса выступает один из классов Clover. И это значит, что мы не объявили импорт Clover в *.gwt.xml модуле. Однако неприятно. Решение было найдено относительно быстро.

В блоке properties объявляем переменную:
<properties>
...
<gwt.module>MyModule.gwt.xml</gwt.module>
...
</properties>


Тюним наш gwt-maven-plugin (я использую 2.2.0):

<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>gwt-maven-plugin</artifactId>
<version>2.2.0</version>
<executions>
<execution>
<configuration>
<module>${gwt.module}</module>
</configuration>
<goals>
<goal>compile</goal>
</goals>
</execution>
</executions>
</plugin>


Теперь в тестовых ресурсах создаем еще один модуль и называем его Empty.gwt.xml:

<module rename-to="empty">
</module>


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

<profiles>
<profile>
<id>Sonar</id>
<properties>
<gwt.module>Empty.gwt.xml</gwt.module>
</properties>
</profile>
</profiles>


Готово, теперь этот модуль нужно включать при запуске под Sonar, делается это так -P Sonar.
Теги:
Хабы:
Всего голосов 8: ↑6 и ↓2 +4
Просмотры 1.5K
Комментарии Комментировать