Почему maven не генерирует отчеты по проекту?

Это Maven 3.0. Я создаю новый проект:

mvn archetype:create

Затем я создаю файл site/site.xml:

<project name="foo">
  <body>
    <menu name="Overview">
      <item name="Introduction" href="index.html" />
    </menu>
    <menu ref="reports" />
  </body>
</project>

Затем я добавляю плагин для отчетов в pom.xml:

<reporting>
  <plugins>
    <plugin>
      <groupId>org.apache.maven.plugins</groupId>
      <artifactId>maven-project-info-reports-plugin</artifactId>
      <version>2.1.1</version>
    </plugin>
  </plugins>
</reporting>

Затем я запускаю mvn site, и он говорит "BUILD SUCCESS". Но я не вижу никаких отчетов на сайте проекта (пункт меню отчета отсутствует). Что я делаю неправильно?

Ответ 1

Отчет Maven 3 отличается.

[...]
<build>
  <plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-site-plugin</artifactId>
    <version>3.0-beta-2</version>
    <configuration>
      <reportPlugins>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-project-info-reports-plugin</artifactId>
          <version>2.2</version>
          <reports>
            <report>cim</report>
            <report>issue-tracking</report>
          </reports>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-javadoc-plugin</artifactId>
          <version>2.2</version>
        </plugin>
      </reportPlugins>
    </configuration>
  </plugin>
</build>
[...]

Ответ 2

Этот pom работает (даже если вы не определяете файл site.xml)

<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>it.cucchiara</groupId>
    <artifactId>test</artifactId>
    <version>1.0-SNAPSHOT</version>
    <packaging>jar</packaging>

    <name>test</name>
    <url>http://maven.apache.org</url>

    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    </properties>

    <dependencies>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>3.8.1</version>
            <scope>test</scope>
        </dependency>
    </dependencies>
    <reporting>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-project-info-reports-plugin</artifactId>
                <version>2.1.1</version>
            </plugin>
        </plugins>
    </reporting>
</project>

Ответ 3

да. Сообщения maven 3 разные. Подсказка: для maven 3 вы можете использовать плагин maven-site-plugin в версии 3.0-beta-2 (плагин сайта версии 3.0-бета-3 выполняется с ошибкой на моем компьютере с maven 3.0-beta-3). Это будет хорошо работать. Но для отчетов: изменить отчет или изменить журнал, я должен использовать старый способ предоставления дополнительных данных.

Вот интересные части моего pom.xml.

        <build>
        :
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-site-plugin</artifactId>
          <version>3.0-beta-2</version>
          <executions>
            <execution>
            <id>createsite</id>
            <phase>package</phase>
            <goals>
                <goal>site</goal>
            </goals>
            <configuration>
                <reportPlugins>
                    <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-project-info-reports-plugin</artifactId>
                    <version>2.2</version>
                        <reportSets>
                        <reportSet>
                        <reports>
                          <report>dependencies</report>
                          <report>license</report>
                          <report>scm</report>
                          <report>project-team</report>
                        </reports>
                        </reportSet>
                        </reportSets>
                    </plugin>
                </reportPlugins>
            </configuration>
            </execution>
         </executions>
      </plugin>
      :
    <build>

    <reporting>
      <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-changes-plugin</artifactId>
        <version>2.3</version>
        <reportSets>
        <reportSet>
        <reports>
          <report>changes-report</report>
        </reports>
        </reportSet>
        </reportSets>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-changelog-plugin</artifactId>
          <version>2.2</version>
        </plugin>
        </plugins>
    </reporting>