Почему maven-site-plugin всегда использует версию 3.3? - PullRequest
0 голосов
/ 29 июня 2018

Я испытываю ту же проблему, описанную в плагинах maven-site 3.3 java.lang.ClassNotFoundException: org.apache.maven.doxia.siterenderer.DocumentContent

Я пытаюсь установить версии для maven-site-plugin (до 3.7.1) и maven-project-info-reports-plugin-version (до 3.0.0), как описано в одном из ответов. Я использую Eclipse, поэтому я смотрю на вкладке «Effective POM» файл pom, над которым я работаю, и вижу, что версии для этих плагинов 3.7.1 и 3.0.0, как я указал.

Тем не менее, когда я запускаю mvn help :ffective-pom, вывод дважды показывает maven-site-plugin - один с версией 3.7.1, как я хочу, а другой с версией 3.3. Когда я запускаю mvn site, вывод показывает, что он использует maven-site-plugin 3.3.

Итак, мой вопрос: откуда взялась ссылка на версию 3.3 maven-site-plugin и как я могу заставить ее использовать 3.7.1? Я уже указываю это в файле pom, но он все еще использует версию 3.3.

Вот мое определение для maven-site-plugin:

    <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-site-plugin</artifactId>
        <version>3.7.1</version>
    </plugin>

Кстати, это родительский файл pom, но это единственная ссылка, которую я должен указать в нем maven-site-plugin или в любом из дочерних файлов pom.

Я использую Maven версии 3.2.1.

1 Ответ

0 голосов
/ 13 ноября 2018

Maven не всегда использует maven-site-plugin версия 3.3.

Фактически версия плагина, используемая во время жизненного цикла site, указана в Apache Maven самого проекта, в maven-core / src / main / resources / META-INF / plexus / components .xml

<default-phases>
  <site>
    org.apache.maven.plugins:maven-site-plugin:3.3:site
  </site>
  <site-deploy>
    org.apache.maven.plugins:maven-site-plugin:3.3:deploy
  </site-deploy>
</default-phases>

До maven 3.1.0

version 3.2

С Maven 3.1.0

version 3.3

См. commit для получения дополнительной информации.

Исправление проблемы

Чтобы переопределить версию maven-site-plugin , добавьте ее в раздел build файла POM и плагин maven-project-info-reports-plugin в reporting , Вот полный рабочий пример:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>

  <groupId>com.mycompany</groupId>
  <artifactId>mavenproject</artifactId>
  <version>1.0-SNAPSHOT</version>
  <packaging>jar</packaging>
  <url>http://www.your.site.com/</url>

  <properties>
    <maven.compiler.source>1.8</maven.compiler.source>
    <maven.compiler.target>1.8</maven.compiler.target>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
  </properties>

  <build>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-site-plugin</artifactId>
        <version>3.7.1</version>
      </plugin>
    </plugins>
  </build>

  <reporting>
    <plugins>
      <plugin>
        <artifactId>maven-project-info-reports-plugin</artifactId>
        <version>3.0.0</version>
      </plugin>
    </plugins>
  </reporting>

</project>

Затем создайте сайт проекта:

$ mvn site 

[INFO] Scanning for projects...
[INFO] 
[INFO] ---------------------< com.mycompany:mavenproject >---------------------
[INFO] Building mavenproject 1.0-SNAPSHOT
[INFO] --------------------------------[ jar ]---------------------------------
[INFO] 
[INFO] --- maven-site-plugin:3.7.1:site (default-site) @ mavenproject ---
[INFO] configuring report plugin org.apache.maven.plugins:maven-project-info-reports-plugin:3.0.0
[INFO] 15 reports detected for maven-project-info-reports-plugin:3.0.0: ci-management, dependencies, dependency-info, dependency-management, distribution-management, index, issue-management, licenses, mailing-lists, modules, plugin-management, plugins, scm, summary, team
...
...