Как оборудовать мультипроект Maven 2 с помощью Cobertura? - PullRequest
2 голосов
/ 07 января 2010

Мой проект Maven 2 состоит из нескольких подмодулей. Он структурирован, содержит и субмодули EJB, WAR и Jar. Теперь я хочу использовать упакованный EAR, который содержит все субмодули, как указано.

Пример:

Interface Maven Project consists of several modules:
- InterfacePOM --> parent pom
- InterfaceEAR --> EAR module which does not actual code but is the packaging for Domain, EJB and WAR
- InterfaceEJB --> EJB module
- interfaceWAR --> WAR module
- interfaceDomain --> JAR module

При использовании Cobertura я могу успешно оборудовать все различные независимые модули, но сгенерировал файл .ser для каждого модуля. Есть ли способ сразу обработать файл EAR? Так что результатом будет один файл .ser, который я могу использовать ??

Ответы [ 3 ]

3 голосов
/ 09 января 2010

Я реализовал решение, основанное на ваших предыдущих ответах о Maven 2. Его все еще не очень легко использовать, но пока все идет хорошо. Реализация выглядит следующим образом:

1. Изменен родительский pom для создания инструментированных классов cobertura при задании определенного профиля. Это создает файлы .ser и инструментированные классы.

2. Инструментированные классы копируются в папку / target / classes с помощью плагина maven-resource-plugin, поэтому в реальной упаковке используются инструментированные классы.

3. Поскольку не существует файла .ser шириной модуля, я вручную объединяю эти .ser файлы из EJB, WAR, JAR и файла ear, используя решение командной строки, данное Cobertura. coberture-merge.bat/.sh

4. Разверните файл .ser в моем контейнере JBoss, а также разверните инструментированный EAR.

5. После тестирования я запускаю отчет по объединенному файлу .ser и вуаля .. похоже, работает ..

Я непременно загляну в Clover, поскольку реализованное решение несколько ручное.

3 голосов
/ 07 января 2010

Краткий ответ: нет (см. этот предыдущий ответ для получения более подробной информации). Вам понадобится внешний плагин, такой как панель инструментов (на самом деле, не используйте его, см. Мой предыдущий ответ), XRadar или Sonar для агрегирования отчетов. Но в этой области Sonar - явный победитель (этот проект просто потрясающий), и я рекомендую его без каких-либо колебаний. Проверьте Nemo , их публичный экземпляр, выберите любой проект и взгляните на детализацию покрытия кода (например, Apache CXF ), чтобы получить представление о том, что он может делать ,

ОБНОВЛЕНИЕ: Похоже, я пропустил начальный вопрос, поэтому я соответствующим образом обновляю свой ответ. По сути, теперь я понимаю вопрос как «как правильно ухаживать за кобертурой», и это действительно совсем другая история.

К сожалению, хотя cobertura может использовать ухо, sar, zip, war, jar, я не думаю, что cobertura-maven-plugin поддерживает это вне -бокса, и это может быть лучшим вариантом использовать задачу муравья cobertura с плагином antrun. См. MCOBERTURA-86 , эту нить и эту дискуссию для получения дополнительной информации об этом (и образец antrun).

TBH, то, что вы пытаетесь сделать, на самом деле непросто с точки зрения жизненного цикла сборки, упаковки, отчетов и т. Д. И будет сложной задачей из-за отсутствия поддержки со стороны плагина cobertura. Я действительно подумал бы об этом дважды (время инвестировать, чтобы все заработало, а не генерируемую стоимость) или подумал бы потратить это время (понять деньги), чтобы получить клеверную лицензию (которая предлагает лучшую поддержку для этого).

1 голос
/ 07 января 2010

Похоже, в плагине cobertura-maven-plugin нет задачи для объединения файлов .ser из отдельных проектов в один отчет.

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

...