Maven, javadoc: нет исходных файлов для пакета

Я пишу maven пакет со структурой каталогов

frtex
   pom.xml
frtex/src/main/java/some-files.java
frtex/src/main/java/utils/some-other-files.java

Изготовление mvn test работает отлично.

Моя проблема mvn javadoc:javadoc который производит правильную документацию для файлов, содержащихся в frtex/src/main/java но выдавая

[WARNING] javadoc: warning - No source files for package utils

Вот соответствующая (?) Часть моего pom.xml:

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-javadoc-plugin</artifactId>
    <version>2.10.4</version>
    <configuration>
        <groups>
            <group>
                <title>TI</title>
                <packages>frtex.*</packages>
            </group>
        </groups>

        <doclet>ch.raffael.doclets.pegdown.PegdownDoclet</doclet>
        <docletArtifact>
            <groupId>ch.raffael.pegdown-doclet</groupId>
            <artifactId>pegdown-doclet</artifactId>
            <version>1.1</version>
        </docletArtifact>
        <useStandardDocletOptions>true</useStandardDocletOptions>
    </configuration>
</plugin>

в project/build/plugins

Что я должен сделать, чтобы maven/javadoc нашел файлы в src/main/java/utils?

5 ответов

Это поздний ответ, но я столкнулся с той же проблемой.

Решение заключается в том, что вам нужно добавить следующее в ваш плагин внутри configuration раздел

<configuration>
   <sourcepath>src/main/java</sourcepath>
   ...
</configuration>

Хотя ответ locus2k работал у меня вначале, он лишь прикрывал реальную основную проблему, с которой я столкнулся с тем, что Javadoc не смог найти структуру каталогов.

В моем случае я создал в IntelliJ - по ошибке - единую структуру каталога с точками, разделяющими их, например: src/main/java/wrong.folder.structure/ вместо: src/main/java/right/folder/structure/

Свернутое представление в IntelliJ показывало обе структуры как одинаковые.

Может быть, проблема не всех, но это была моя.

Проблема не в вашей конфигурации maven.

Вы должны включить package-info.java для пакета утилит.

Это файл, расположенный по адресу src/main/java/utils/package-info.java это будет содержать Javadoc для пакета, в отличие от Javadoc для класса.

Для получения дополнительной информации о javadocs уровня пакета, вы можете прочитать документацию.

Эта проблема также может возникнуть, если вы используете более новую версию Java для сборки проекта, хотя в этом случае предупреждение является ошибкой, что приводит к сбою сборки. В моем случае я создавал проект Java 8 с JDK Java 12 (Bellsoft).

Чтобы решить эту проблему, вы можете использовать Java 8 JDK или, что лучше, добавить <source>8</source> к configuration раздел maven-javadoc-plugin(аналогично решению @ locus2k ).

Я еще не решил проблему, но могу сказать, что для меня это срабатывает, когда я добавляю Multi-Release: trueв файл манифеста. Здесь есть некоторое обсуждение этого:

Java 11/12 Javadoc с maven приводит к тому, что не создается Javadocs для тестов

Другие вопросы по тегам