Плагин Maven 3 JavaDoc конфликтует с группами тестирования

#java #maven #testng #javadoc

#java #maven #testng #Javadoc

Вопрос:

У меня есть следующее:

 <plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-javadoc-plugin</artifactId>
    <version>${maven-javadoc-plugin.version}</version>
    <executions>
        <execution>
            <id>javadoc-jar</id>
            <phase>package</phase>
            <goals>
                <goal>jar</goal>
            </goals>
        </execution>
    </executions>
</plugin>
 

Который отлично работает во время упаковки или установки:

однако, как только я попытаюсь указать группу TestNG для запуска тестов:

 mvn install -Dgroups=somegroup
 

после завершения выполнения тестов происходит сбой со следующей ошибкой:

[ОШИБКА] Не удалось выполнить цель org.apache.maven.plugins:maven-javadoc-plugin:2.9.1:jar (javadoc-jar) в проекте ibd.database.api: не удалось проанализировать конфигурацию mojo org.apache.maven.plugins:maven-javadoc-plugin:2.9.1:jarдля параметра #: не удается найти установщик по умолчанию в классе org.apache.maven.plugin.javadoc.options.Группа

Спасибо за любую информацию или рекомендации по этому поводу.

Комментарии:

1. Для этого возникла проблема . Чтобы решить вашу проблему, определите свойство для maven-surefire-plugin, которое тем временем называется по-другому.

2. На основе сообщения, которое вы, должно быть, использовали mvn install -Dgroup=somegroup вместо mvn install -Dgroups=somegroup .

Ответ №1:

Проблема в том, что как плагины surefire, так и javadoc используют параметр -Dgroups , и в вашем случае плагин javadoc не может найти «somegroup».

Насколько я знаю, для этого нет чистого решения, но вы можете сделать обходной путь, определив пользовательское свойство в вашем pom.xml:

 <properties>
    <surefire.groups></surefire.groups>
</properties>
 

Затем используйте свойство в конфигурации surefire:

 <plugin>
    <artifactId>maven-surefire-plugin</artifactId>
    ...
    <configuration>
         <groups>${surefire.groups}</groups>
    </configuration>
</plugin>
 

Теперь вы можете запускать тесты из командной строки, используя свойство surefire.groups:

 mvn install -Dsurefire.groups=somegroup