Сайт Maven (Maven 3) создает пустую папку сайта

Я пытаюсь создать базовый сайт maven, используя плагин сайта maven. Поэтому я добавил это моему моменту:

<reporting>
    <plugins>
        <!--JavaDoc setup-->
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-javadoc-plugin</artifactId>
            <version>2.7</version>
            <configuration>
                <defaultAuthor>Leon Blakey</defaultAuthor>
                <defaultVersion>${project.version}</defaultVersion>
                <links>
                    <link>http://download.oracle.com/javase/6/docs/api</link>
                </links>
            </configuration>
        </plugin>
    </plugins>
</reporting>

И запустил mvn site --errors

[INFO] Error stacktraces are turned on.
[INFO] Scanning for projects...
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building pircbotx 1.3-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[INFO]
[INFO] --- maven-site-plugin:2.0.1:site (default-site) @ pircbotx ---
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 2.688s
[INFO] Finished at: Wed Jan 12 18:08:00 EST 2011
[INFO] Final Memory: 5M/13M
[INFO] ------------------------------------------------------------------------
W:\programming\pircbot-hg>

Хмм, странно, что нет выхода. Поэтому, когда я проверяю target/site, его пустой. Единственными папками являются images/, css/, и WEB-INF/, заполненные некоторыми родовыми изображениями. Нет javadoc и нет сайта.

Это воспроизводится с помощью mvn site:site и mvn org.apache.maven.plugins:maven-site-plugin:2.2:site (по-видимому, maven только хочет использовать 2.0.1 по умолчанию)

Странно, что я могу вернуться к maven 2.2.1 и успешно сгенерировать сайт. Но когда я использую 3.0.1-RC1 (случается, с Netbeans), он терпит неудачу.

Что я делаю неправильно, что сделает плагин сайта неудачным в 3.0.1, но не 2.2.1?

Ответ 1

Возможно, вы можете попробовать использовать Maven Site Plugin 3.x. Вы можете сделать это, добавив следующее в свой pom.xml

<build>
    ...
    <plugins>
        ...
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-site-plugin</artifactId>
            <version>3.0-beta-3</version>
        </plugin>
    </plugins>
</build>

Ответ 2

У меня была такая же проблема. Я нашел сообщение в блоге об этой теме.

Цитата в блоге (акцент мой):

Если вы использовали раздел отчетов в файле pom.xml для генерации показателей качества кода, отчетов javadoc и т.д., вы можете немного потрудиться, чтобы перенести эту функцию в Maven 3. Действительно, отчетность и разделы reportSets устарели (, это не вызовет ошибку с Maven 3, оно будет просто проигнорировано) и было заменено секцией reportPlugins в блоке конфигурации maven-site- сам плагин.

Игнорирование старого <reporting> без предупреждения о его устаревании кажется немного грубым, но в любом случае...

Итак, вы просто перемещаете свои старые плагины отчетов в раздел конфигурации нового плагина maven-site.

A раздел сайта maven-plugin объясняет, что они удалили всю логику отчетности из ядра Maven, чтобы "отделить ядро ​​Maven от Doxia и разрешить разработку произвольных систем отчетности". Имеет смысл.

Ответ 3

Использование плагина сайта (http://maven.apache.org/plugins/maven-site-plugin/) с Maven 3, наконец, похоже, будет разрешено. Была выпущена версия (не-бета), и добавлена ​​возможность использовать структуру стиля <reporting> версии 2 в объявлении pom.xml.

Несмотря на то, что (как обычно) трудно ориентироваться в существенной, но неорганизованной и дублирующей документации о Maven 3 и плагине сайта, одна страница - http://maven.apache.org/plugins/maven-site-plugin/maven-3.html - утверждает что старый стиль теперь рекомендуется по новому плагину "плагин для сайта":

Примечание. В Maven 3 новый формат не поддерживает наследование конфигурации плагинов отчетов: см. MSITE-484. Этот формат был технически необходим для удаления логики отчетности от Maven 3, но новый механизм наследования все еще необходимо добавить в Maven 3, чтобы сделать его таким же гибким, как старый формат. Таким образом, новый формат еще не готов к прямому использованию.

Пример страницы http://maven.apache.org/plugins/maven-site-plugin/examples/configuring-reports.html для настройки отчетов даже не упоминает "новый" метод форматирования.

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

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

    <reporting>
        <plugins>

            <!-- Default Site Pages -->
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-project-info-reports-plugin</artifactId>
                <version>2.4</version>
            </plugin>

            <!-- Java Documentation -->
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-javadoc-plugin</artifactId>
                <version>2.8</version>
            </plugin>

            <!-- Source Code Cross-Reference -->
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-jxr-plugin</artifactId>
                <version>2.3</version>
            </plugin>
            ...
        </plugins>
    </reporting>

В стороне. Если вы используете плагин m2e в Eclipse для редактирования своих POM, вы можете использовать завершение кода в разделе версии плагина, чтобы предоставить вам список его текущих версий. Очень удобно.