Maven Javadoc не смог найти мой подпакет - 'javadoc: предупреждение - нет исходных файлов для пакета' - PullRequest
0 голосов
/ 21 мая 2018

У меня есть этот проект Maven.Я пытаюсь, чтобы Maven автоматически генерировал JavaDocs при запуске пакета mvn.Весь проект компилируется и упаковывается просто отлично.Он сгенерировал документацию для всех моих классов Java, которые просто в основном пакете, но не сгенерировал документацию ни для каких классов в подпакетах.Он сказал, что не может их найти.

Точное сообщение об ошибке:

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

Я структурировал свой проект так:

pom.xml
src (directory)
    main (directory)
        java (directory)
            parser (directory)
                Parser.java
                StringParser.java
                ByteParser.java
            Main.java
            Reader.java

Классы Main.java и Reader.java имеют пакетcom.personal.reader;».Классы в каталоге парсера имеют пакет package com.personal.reader.parser;Похоже, что в сообщении об ошибке говорится, что он не может найти «com.personal.reader.parser».

Мой pom.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/maven-v4_0_0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>com.personal.reader</groupId>
    <artifactId>Reader</artifactId>
    <packaging>jar</packaging>
    <version>0.1.0</version>
    <name>Reader</name>
    <url>http://maven.apache.org</url>
    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-javadoc-plugin</artifactId>
                <version>3.0.0</version>
                <configuration>
                    <outputDirectory>docs</outputDirectory>
                </configuration>
                <executions>
                    <execution>
                        <id>attach-javadocs</id>
                        <goals>
                            <goal>jar</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>
</project>

Я пытался найти решения.Самым близким, что я нашел, является вопрос StackOverflow .Там, кажется, нет четкого ответа.Я попытался скомпилировать проект, который был связан в ответе автора, чтобы увидеть, решил он это или нет.В проекте автора все еще были те же проблемы, что и у меня.

Я попытался создать файл package-info.java как в src / main / java, так и в src / main / java / parser.Это, похоже, не сработало.

Я пытался связываться с maven-javadoc-plugins .Я посмотрел на sourceFileInclude, includeDependencySources, подпакеты и dependencySourceInclude.Ни один из них, кажется, не работает.Возможно, я что-то пропустил.

Как я могу исправить эту проблему с Maven, не включая подпакет для создания Javadocs?

1 Ответ

0 голосов
/ 21 мая 2018

Похоже, я нашел свой ответ.Я публикую это здесь, чтобы другие люди, у которых возникла такая же проблема, могли найти ее здесь.

Как я это сделал: у меня был другой переход к тегу sourceFileInclude в Maven-Javadoc-плагинов .Я добавил это в плагин в проекте pom.xml.

<sourceFileIncludes>
    <sourceFileInclude>**/*.java</sourceFileInclude>
</sourceFileIncludes>

Весь плагин в проекте pom.xml выглядит так:

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-javadoc-plugin</artifactId>
    <version>3.0.0</version>
    <configuration>
        <outputDirectory>docs</outputDirectory>
        <sourceFileIncludes>
            <sourceFileInclude>**/*.java</sourceFileInclude>
        </sourceFileIncludes>
    </configuration>
    <executions>
        <execution>
            <id>attach-javadocs</id>
            <goals>
                <goal>jar</goal>
            </goals>
        </execution>
    </executions>
</plugin>

Он успешно сгенерировал Javadocsдокументы на классы в каталоге парсера.Я предполагаю, что это также будет работать с другими каталогами или более глубокими каталогами.Если этого не произойдет, вы можете просто добавить еще один <sourceFileInclude> в группу <sourceFileIncludes> со своим собственным путем.

Я не уверен на сто процентов, если это правильный ответ, но он точно работаетхорошо для меня.Если у кого-то есть лучшее решение, пожалуйста, отправьте его сюда.

...