Почему <dependencies>
для <plugin>
можно определить только в разделе <build>
, а не в разделе <reporting>
pom
?
- Почему maven
pom.xml
синтаксис disallow <dependencies>
in <reporting>
? - Что если пользователь захочет настроить плагин только для
<reporting>
и установить версию зависимости тоже?
- Как / почему используется
<build>
информация о зависимостис помощью плагина в разделе <reporting>
?
Документация, которую я нашла , я объясню ниже, почему она не ответила на вопрос (путаница из документации на самом делепочему я задаю этот вопрос здесь!).
Из того, что я прочитал, заметил и попробовал, вот мое текущее понимание:
Плагины в <build>
Раздел скрипта может переопределить информацию о зависимостях по умолчанию, и это повлияет на зависимости плагина в разделе <reporting>
.Следовательно, информация о зависимости подключаемого модуля не обязательно должна находиться в разделе <reporting>
, а только в разделе <build>
.
Это правильно?Есть ли в документах место, которое разъясняет это?Какие детали мне не хватает, чтобы правильно понять связь между <build>
и <reporting>
конфигурацией плагина для <dependencies>
?
Из документации Maven
В документации Maven говорится Использование отчетов против тега сборки :
Использование <reporting>
Tag VS <build>
Tag
Настройка подключаемого модуля отчетов в элементах <reporting>
или <build>
в pom НЕ имеет такого же поведения!
mvn site
Используются только параметры, определенные в элементе <configuration>
каждого подключаемого модуля отчетности, указанного в элементе <reporting>
, т.е. сайт всегда игнорирует параметры, определенные в элементе <configuration>
каждый плагин, указанный в <build>
.
В документации явно сказано, что <configuration>
не распространяется между <build>
и <reporting>
, но мой вопрос касается <dependencies>
и как / почему они толькополучить объявление в <build>
и никогда <reporting>
.
Кажется, что зависимости, указанные в <build>
do , переносятся на <reporting>
плагинов.Но для этого я бы хотел получить подтверждение / объяснение.
Минимальный пример
Я столкнулся с этим вопросом Обновление зависимостей для плагина CheckStyle во время выполнения для использования сmvn site
, поэтому этот минимальный пример POM демонстрирует проблему с плагином Checkstyle в качестве примера.
<?xml version="1.0" encoding="UTF-8"?>
<project>
<modelVersion>4.0.0</modelVersion>
<groupId>com.example</groupId>
<artifactId>mylib</artifactId>
<version>1.0</version>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-checkstyle-plugin</artifactId>
<version>3.0.0</version>
<dependencies>
<dependency>
<groupId>com.puppycrawl.tools</groupId>
<artifactId>checkstyle</artifactId>
<version>8.15</version> <!-- Update from default 6.18 to 8.15 -->
</dependency>
</dependencies>
</plugin>
</plugins>
</build>
<reporting>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-checkstyle-plugin</artifactId>
<version>3.0.0</version>
<!-- Uncommenting will cause syntax error, Dependencies can't be declared in reporting -->
<!-- <dependencies>
<dependency>
<groupId>com.puppycrawl.tools</groupId>
<artifactId>checkstyle</artifactId>
<version>8.15</version>
</dependency>
</dependencies> -->
</plugin>
</plugins>
</reporting>
</project>