Когда цель Maven не является частью фазы / жизненного цикла? - PullRequest
0 голосов
/ 04 марта 2019

Вид устал не знать этого.«отчет» не является жизненным циклом Maven.Как мы говорим Maven запускать отчеты в течение определенного жизненного цикла.Если «отчет» не является жизненным циклом или фазой, то что на самом деле означает <goal>report</goal>?Когда выйдет отчет?Как мы запускаем его напрямую / только?

         <plugin>
            <groupId>org.jacoco</groupId>
            <artifactId>jacoco-maven-plugin</artifactId>
            <version>0.8.3</version>
            <executions>
                <execution>
                    <goals>
                        <goal>prepare-agent</goal>
                    </goals>
                </execution>
                <execution>
                    <id>report</id>
                    <phase>prepare-package</phase>
                    <goals>
                        <goal>report</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>

Удивительно , когда я запускаю это:

 mvn org.jacoco.jacoco-maven-plugin:report

или это:

 mvn jacoco-maven-plugin:report

Я получаю эту ошибку:

[ОШИБКА] Не найден плагин для префикса 'org.jacoco.jacoco-maven-plugin' в текущем проекте и в группах плагинов [org.apache.maven.plugins, org.codehaus.mojo]доступны из репозиториев [local (/home/oleg/.m2/repository), центральный (https://repo.maven.apache.org/maven2)] -> [Help 1]

Когда я запускаю это:

mvn clean prepare-package

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

target/site/jacoco

, но я не понимаю, почему команды mvn jacoco-maven-plugin:report не будут работать.

Ответы [ 2 ]

0 голосов
/ 04 марта 2019

Для теории:

У Maven голов , фаз и жизненных циклов .

Жизненный цикл состоит из последовательности фаз.Каждый этап будет выполнять ряд прикрепленных целей.Цель - это фактический код, который будет выполнен.

Когда вы говорите Maven выполнить фазу, он запускает жизненный цикл от начала до этой фазы.Когда вы говорите Maven выполнить цель, она просто запускает эту цель.Цели и фазы можно легко различить, поскольку в названии целей указано * 1013. *

В своем первом фрагменте вы прикрепили цель report к фазе prepare-package, поэтому она будет выполняться, если вы позвонитеmvn prepare-package или любой последующий этап как mvn install.

Если плагин уже определен в POM (или родительском POM, или в Maven super POM), вы можете вызвать его в командной строке с помощью mvn jacoco-maven-plugin:report,В противном случае вам нужно полное имя в форме mvn groupId:artifactId:version:goal.

0 голосов
/ 04 марта 2019

отчет - это цель, определенная в плагине JaCoCo Maven.

Пожалуйста, отметьте это.

https://www.eclemma.org/jacoco/trunk/doc/maven.html

Использование плагина вместе с maven-site-plugin без явного выбора отчетов может привести к созданию избыточных сводных отчетов.Чтобы избежать этого, укажите явно наборы отчетов:

<project>
  <reporting>
    <plugins>
      <plugin>
        <groupId>org.jacoco</groupId>
        <artifactId>jacoco-maven-plugin</artifactId>
        <reportSets>
          <reportSet>
            <reports>
              <!-- select non-aggregate reports -->
              <report>report</report>
            </reports>
          </reportSet>
        </reportSets>
      </plugin>
    </plugins>
  </reporting>
</project>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...