首页 > 解决方案 > maven javadoc插件:使用外部JAR时包不存在

问题描述

不知道为什么 Maven Javadoc 插件报告:

[ERROR] /project/src/main/a/b/SomeClass.java:3: error: package com.x does not exist
[ERROR] import com.x.y;

pom.xml中的插件相关部分

            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-javadoc-plugin</artifactId>
                <version>3.2.0</version>
                <executions>
                    <execution>
                        <id>attach-javadocs</id>
                        <goals>
                            <goal>jar</goal>
                        </goals>
                    </execution>
                </executions>
                <configuration>
                    <encoding>UTF-8</encoding>
                    <sourcepath>${project.basedir}/src/main/java</sourcepath>
                    <excludePackageNames>com.x.*</excludePackageNames>
                    <dependencySourceExcludes>com.x.*</dependencySourceExcludes>
                </configuration>
            </plugin>

从上面的代码可以看出,我尝试将我希望JavaDoc处理的项目源包含在其中<sourcepath>并排除有问题的包

问题可能是由于包com.x.y包含在外部 jar 中,该 jar 以以下配置添加到项目中:

           <plugin>
                <artifactId>maven-antrun-plugin</artifactId>
                <version>1.3</version>
                <executions>
                    <execution>
                        <phase>generate-sources</phase>
                        <configuration>
                            <tasks>
                                <echo>Unpack JAR archive with JNI interface</echo>
                                <unjar src="${project.basedir}/x/lib63.jar" dest="${project.build.directory}/classes">
                                    <patternset>
                                        <include name="**/*.class"/>
                                    </patternset>
                                </unjar>
                            </tasks>
                        </configuration>
                        <goals>
                            <goal>run</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>

如何忽略那些导入错误?

我不是每天都使用这个插件,所以我可能无法理解所有的细微差别。但我不明白为什么它甚至试图分析进口。它不应该只是分析我的源代码并根据 javadoc 注释创建 html 文件吗?

PS没有javadoc插件构建成功

标签: javamavenmaven-javadoc-plugin

解决方案


推荐阅读