Maven javadoc:javadoc可以工作,但是javadoc:aggregate抛出的错误看起来像编译器错误

Maven javadoc:javadoc可以工作,但是javadoc:aggregate抛出的错误看起来像编译器错误,java,spring,maven,javadoc,Java,Spring,Maven,Javadoc,我正在尝试为一个多模块项目创建一个聚合javadoc。该项目使用mvn安装-DskipTests编译(我没有在我的机器上运行测试)。当我运行mvnvalidatejavadoc:javadoc时,它工作并编译每个modules\target\apidocs目录中的所有javadoc。然后,当我运行mvn-validate-javadoc:javadoc-javadoc:aggregate或mvn-validate-javadoc:aggregate时,会出现大约1200行错误,中途失败。类型的一

我正在尝试为一个多模块项目创建一个聚合javadoc。该项目使用
mvn安装-DskipTests
编译(我没有在我的机器上运行测试)。当我运行
mvnvalidatejavadoc:javadoc
时,它工作并编译每个modules\target\apidocs目录中的所有javadoc。然后,当我运行
mvn-validate-javadoc:javadoc-javadoc:aggregate
mvn-validate-javadoc:aggregate
时,会出现大约1200行错误,中途失败。类型的一些示例包括:

Failed to execute goal org.apache.maven.plugins:maven-javadoc-plugin:2.9.1:aggregate (default-cli) on project commons-superpom: An error has occurred in JavaDocs report generation:
[ERROR] Exit code: 1 - C:\workspaces\win\tfs\****\Foo.java:21: type org.springframework.context.ApplicationListener does not take parameters
[ERROR] public class Foo implements ApplicationContextAware, ApplicationListener<ContextRefreshedEvent> {
[ERROR] ^
.
.
.
C:\workspaces\win\tfs\****\test\Bar.java:52: cannot find symbol
[ERROR] symbol  : class PostInsertEvent
[ERROR] location: class com.Barclass
[ERROR] public void BarFunct(PostInsertEvent event) {
[ERROR] ^
[ERROR] C:java.lang.NullPointerException
[ERROR] at com.sun.tools.javadoc.TypeMaker.getType(TypeMaker.java:67)
[ERROR] at com.sun.tools.javadoc.TypeMaker.getType(TypeMaker.java:29)
[ERROR] at com.sun.tools.javadoc.ClassDocImpl.superclassType(ClassDocImpl.java:439)
[ERROR] at com.sun.tools.doclets.internal.toolkit.util.Util.getAllInterfaces(Util.java:386)
[ERROR] at com.sun.tools.doclets.internal.toolkit.util.Util.getAllInterfaces(Util.java:424)
[ERROR] at com.sun.tools.doclets.internal.toolkit.util.ClassTree.processType(ClassTree.java:162)
[ERROR] at com.sun.tools.doclets.internal.toolkit.util.ClassTree.buildTree(ClassTree.java:114)
[ERROR] at com.sun.tools.doclets.internal.toolkit.util.ClassTree.<init>(ClassTree.java:73)
[ERROR] at com.sun.tools.doclets.internal.toolkit.AbstractDoclet.startGeneration(AbstractDoclet.java:104)
[ERROR] at com.sun.tools.doclets.internal.toolkit.AbstractDoclet.start(AbstractDoclet.java:64)
[ERROR] at com.sun.tools.doclets.formats.html.HtmlDoclet.start(HtmlDoclet.java:42)
[ERROR] at com.sun.tools.doclets.standard.Standard.start(Standard.java:23)
[ERROR] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
[ERROR] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
[ERROR] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
[ERROR] at java.lang.reflect.Method.invoke(Method.java:597)
[ERROR] at com.sun.tools.javadoc.DocletInvoker.invoke(DocletInvoker.java:269)
[ERROR] at com.sun.tools.javadoc.DocletInvoker.start(DocletInvoker.java:143)
[ERROR] at com.sun.tools.javadoc.Start.parseAndExecute(Start.java:340)
[ERROR] at com.sun.tools.javadoc.Start.begin(Start.java:128)
[ERROR] at com.sun.tools.javadoc.Main.execute(Main.java:41)
[ERROR] at com.sun.tools.javadoc.Main.main(Main.java:31)
无法在project commons superpom上执行目标org.apache.maven.plugins:maven javadoc plugin:2.9.1:aggregate(默认cli):JavaDocs报告生成中出错:
[错误]退出代码:1-C:\workspace\win\tfs\**\Foo.java:21:type org.springframework.context.ApplicationListener不接受参数
[错误]公共类Foo实现ApplicationContextAware、ApplicationListener{
[错误]^
.
.
.
C:\workspace\win\tfs\**\test\Bar.java:52:找不到符号
[错误]符号:类POSTINSERTENT
[错误]位置:class com.Barclass
[错误]公共无效功能(PostInsertEvent事件){
[错误]^
[错误]C:java.lang.NullPointerException
[错误]位于com.sun.tools.javadoc.TypeMaker.getType(TypeMaker.java:67)
[错误]位于com.sun.tools.javadoc.TypeMaker.getType(TypeMaker.java:29)
[错误]位于com.sun.tools.javadoc.ClassDocImpl.superclassType(ClassDocImpl.java:439)
[错误]位于com.sun.tools.doclets.internal.toolkit.util.util.GetAllInterface(util.java:386)
[错误]位于com.sun.tools.doclets.internal.toolkit.util.util.GetAllInterface(util.java:424)
[错误]位于com.sun.tools.doclets.internal.toolkit.util.ClassTree.processType(ClassTree.java:162)
[错误]位于com.sun.tools.doclets.internal.toolkit.util.ClassTree.buildTree(ClassTree.java:114)
[错误]位于com.sun.tools.doclets.internal.toolkit.util.ClassTree.(ClassTree.java:73)
[错误]位于com.sun.tools.doclets.internal.toolkit.AbstractDoclet.startGeneration(AbstractDoclet.java:104)
[错误]位于com.sun.tools.doclets.internal.toolkit.AbstractDoclet.start(AbstractDoclet.java:64)
[错误]位于com.sun.tools.doclets.formats.html.HtmlDoclet.start(HtmlDoclet.java:42)
[错误]位于com.sun.tools.doclets.standard.standard.start(standard.java:23)
sun.reflect.NativeMethodAccessorImpl.invoke0(本机方法)处的[错误]
在sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)处出现[错误]
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)处的[ERROR]
java.lang.reflect.Method.invoke(Method.java:597)处的[ERROR]
[错误]位于com.sun.tools.javadoc.DocletInvoker.invoke(DocletInvoker.java:269)
[错误]位于com.sun.tools.javadoc.DocletInvoker.start(DocletInvoker.java:143)
[错误]位于com.sun.tools.javadoc.Start.parseAndExecute(Start.java:340)
[错误]位于com.sun.tools.javadoc.Start.begin(Start.java:128)
[错误]位于com.sun.tools.javadoc.Main.execute(Main.java:41)
[错误]位于com.sun.tools.javadoc.Main.Main(Main.java:31)
崩溃后,我的父pom.xml旁边的/target目录中剩下的全部是2个文件1是包含xml文件的javadoc bundle options:

<?xml version="1.0" encoding="UTF-8"?>
<javadocOptions>
  <docletArtifacts>
    <docletArtifact />
  </docletArtifacts>
  <tagletArtifacts>
    <tagletArtifact />
  </tagletArtifacts>
  <excludePackageNames>
    <excludePackageName>org.foobar.*</excludePackageName>
  </excludePackageNames>
  <javadocResourcesDirectory>src/main/javadoc</javadocResourcesDirectory>
</javadocOptions>

org.foobar*
src/main/javadoc
第二个站点包含一个名为apidocs的文件,其中包含3个文件javadoc.bat、options和packages。它们似乎包含一个批处理脚本,用于在这些选项和包上运行javadoc.exe

我复制的第一个错误是完全错误的。ApplicationListener是参数化的,可以根据spring文档获取ContextRefreshedEvent。第二个错误中也正确导入了PostInsertEvent。我不知道NullPointerException发生在何处

我对javadoc:aggregate的插件配置如下:

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-javadoc-plugin</artifactId>
    <version>${maven-javadoc-plugin.version}</version>
    <executions>
            <execution>
                    <id>attach-javadocs</id>
                    <goals>
                            <goal>aggregate</goal>
                    </goals>
            </execution>
    </executions>
    <configuration>
            <excludePackageNames>org.hibernate.*;org.spring.*<-!-- ;com.***.hibernate.audit --></excludePackageNames>
            <verbose>true</verbose>
            <fork>true</fork>
            <showDeprecation>true</showDeprecation>
            <showWarnings>true</showWarnings>
            <source>${java.source.version}</source>
            <target>${java.target.version}</target>
            <compilerVersion>${java.source.version}</compilerVersion>
            <compilerArgument>-Xlint:all</compilerArgument>
            <minmemory>128m</minmemory>
            <maxmem>512m</maxmem>

            <encoding>${project.build.sourceEncoding}</encoding>

            <additionalparam>
                    -charset UTF-8 
                    -docencoding UTF-8 
                    -version 
                    -author 
                    -breakiterator 
                    -linksource 
                    -sourcetab 4 
                    -windowtitle "${project.name} ${project.version} API Reference" 
                    -doctitle "${project.name} ${project.version} API Reference" 
                    -bottom "Copyright ${project.inceptionYear}-Present ${project.organization.name}. All Rights Reserved." 
                    -link http://java.sun.com/javase/6/docs/api/
                    -link http://jsr311.java.net/nonav/releases/1.1
            </additionalparam>
    </configuration>
 </plugin>

org.apache.maven.plugins
maven javadoc插件
${maven javadoc plugin.version}
附加javadocs
总数的
org.hibernate.*;org.spring*
真的
真的
真的
真的
${java.source.version}
${java.target.version}
${java.source.version}
-Xlint:全部
128米
512m
${project.build.sourceEncoding}
-字符集UTF-8
-文件编码UTF-8
-版本
-作者
-中断迭代器
-链接源
-资料表4
-windowtitle“${project.name}${project.version}API引用”
-doctitle“${project.name}${project.version}API引用”
-底部“版权${project.inceptionYear}-Present${project.organization.name}。保留所有权利。”
-链接http://java.sun.com/javase/6/docs/api/
-链接http://jsr311.java.net/nonav/releases/1.1
如果我排除已注释的包,则构建运行正常。但是,如果我排除包中的所有文件,而不是包,则它会崩溃,并出现非常类似的错误。我可以在eclipse中生成javadoc。如果我编辑在使用3.3.2.GA/hibernate-core-3失败后生成的选项文件,则可以停止nullpointerexception.3.2.GA.jar而不是hibernate-core-4.1.8.Final.jar,然后运行bat文件。这将生成一个完整的聚合javadoc站点。但是,在运行过程中有几个与@Typedef相关的错误。javadoc 1.7_60和1.6_45都以相同的方式失败。

修复: javadoc编译器1.6和1.7中都有一个注释,没有jar的注释会抛出一个NPE。1.8 javadoc编译器可以工作,但是我仍然会出错,因为我没有正确的ja