Сайт Maven (Maven 3) генерирует пустую папку сайта
-
10-10-2019 - |
Вопрос
Я пытаюсь создать базовый сайт maven с помощью плагина maven site.Поэтому я добавил это в свой пом:
<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?
Решение
Возможно, вы можете попробовать использовать Плагин Maven сайта 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>
Другие советы
У меня была такая же проблема.Я нашел запись в блоге по поводу темы.
Цитирую блог (курсив мой):
Если вы использовали раздел отчетов файла pom.xml для генерации показателей качества кода, отчетов javadoc и так далее, возможно, вам придется немного поработать над переносом этой функции в Maven 3.Действительно, разделы reporting и reportSets устарели (это не вызовет ошибку с Maven 3, она просто будет проигнорирована), и были заменены разделом reportPlugins в блоке конфигурации самого maven-site-plugin.
Игнорирование старого <reporting>
без какого-либо предупреждения о том, что он устарел, кажется немного грубым, но в любом случае...
Таким образом, вы, по сути, просто перемещаете свои старые плагины для отчетов в раздел конфигурации нового maven-site-plugin.
A раздел сайта maven-plugin-site объясняет , что они удалена вся логика отчетности из ядра Maven чтобы "отделить ядро Maven от Doxia и разрешить разработку произвольных систем отчетности". Имеет смысл.
Использование плагина для сайта ( http://maven.apache.org/plugins/maven-site-plugin/ ) с Maven 3, наконец, кажется, все решено.Была выпущена версия (не бета-версия), и появилась возможность использовать стиль версии 2. <reporting>
структура в объявлении 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, то вы можете использовать завершение кода в разделе версии плагина, чтобы получить список его текущих версий.Очень удобно.