Генерация нескольких форматов отчетов Cobertura с помощью командной строки Maven

С Maven я могу генерировать несколько различных типов отчетов о покрытии кода с помощью Cobertura, изменив раздел отчетов моего POM, а...

<plugin>
    <groupId>org.codehaus.mojo</groupId>
    <artifactId>cobertura-maven-plugin</artifactId>
    <configuration>
        <formats>
            <format>html</format>
            <format>xml</format>
        </formats>
    </configuration>
</plugin>

Кроме того, я могу генерировать отчет одного типа из командной строки Maven, а...

mvn clean cobertura:cobertura -Dcobertura.report.format=xml 

Как создать несколько разных типов отчетов из командной строки Maven?

Видимо, я могу сделать только один.... Я попробовал это ниже, и это не работает!

mvn clean cobertura:cobertura -Dcobertura.report.formats=xml,html

(ПРИМЕЧАНИЕ. Приведенное выше свойство использует "форматы" и "формат". Приведенное выше всегда создает отчет HTML по умолчанию, не видя двух указанных форматов. Я использую Maven 3.2.3 и плагин Cobertura версии 2.0.3.)

Пожалуйста, помогите, мой Googol Fu терпит неудачу.... Кто-нибудь знает, возможно ли это или нет?

1 ответ

Решение

Похоже, это невозможно...

Из сообщения блога Sonatype Настройка целей плагина в Maven 3:

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

Авторам плагинов, которые хотят включить конфигурирование массивов / коллекций на основе CLI, просто нужно добавить тег выражения к аннотации их параметров.

Но в коде плагина:

/**
 * The format of the report. (supports 'html' or 'xml'. defaults to 'html')
 * 
 * @parameter expression="${cobertura.report.format}"
 * @deprecated
 */
private String format;

/**
 * The format of the report. (can be 'html' and/or 'xml'. defaults to 'html')
 * 
 * @parameter
 */
private String[] formats = new String[] { "html" };

Как вы видете formats не имеет expression тег (в отличие от format) поэтому его нельзя настроить из командной строки.

Обновить

Я только что понял, что ответил на неправильный вопрос:) Вопрос, на который я ответил: "Как я могу сгенерировать несколько разных типов отчетов из командной строки Maven, используя опцию" форматы "?". Но оригинальный вопрос был "Как я могу сгенерировать несколько разных типов отчетов из командной строки Maven?"

На самом деле есть простой обходной путь - запустить Maven дважды (второй раз без clean), как это:

mvn clean cobertura:cobertura -Dcobertura.report.format=xml
mvn cobertura:cobertura -Dcobertura.report.format=html
Другие вопросы по тегам