Maven Javadoc 插件未找到自定义标签

问题描述 投票:0回答:1

我创建了一些自定义 JavaDoc Taglet,如下所述:

http://docs.oracle.com/javase/7/docs/technotes/guides/javadoc/taglet/overview.html

当我手动指定 Taglet 类时,它们可以与 Maven Javadoc 插件一起正常工作:

      <taglets>
        <taglet>
          <tagletClass>package.to.YourFirstTagletClass</tagletClass>
        </taglet>

        <taglet>
          <tagletClass>package.to.YourSecondTagletClass</tagletClass>
        </taglet>
        ...
      </taglets>

      <tagletArtifact>
        <groupId>group-Taglet</groupId>
        <artifactId>artifact-Taglet</artifactId>
        <version>version-Taglet</version>
      </tagletArtifact>

如此处所述:http://maven.apache.org/plugins/maven-javadoc-plugin/examples/taglet-configuration.html

但是,如果我有插件自动检测我的 Taglet,如上述链接末尾所述,即:

      <tagletArtifacts>
        <tagletArtifact>
          <groupId>group-FirstTaglet</groupId>
          <artifactId>artifact-FirstTaglet</artifactId>
          <version>version-FirstTaglet</version>
        </tagletArtifact>
      </tagletArtifacts>

然后,在构建时,出现以下错误:

[WARNING] Unable to auto-detect Taglet class names from '/path/to/jar.jar'. Try to specify them with <taglets/>.

有人对检查什么有建议吗?

谢谢!

java maven maven-javadoc-plugin taglet
1个回答
0
投票

检查maven-javadoc-plugin源代码的相关部分,有三种不同的异常类型可以产生此警告。在所有情况下,如果您使用 mvn -X

 重新运行构建以启用调试模式,您将获得包含更多详细信息的完整异常堆栈跟踪。

这是我在 JPMS 模块化项目中使用 maven-javadoc-plugin 3.6.3 时遇到的一个此类异常:

[DEBUG] NoClassDefFoundError: module-info is not a class because access_flag ACC_MODULE is set java.lang.NoClassDefFoundError: module-info is not a class because access_flag ACC_MODULE is set at java.lang.ClassLoader.defineClass1 (Native Method) at java.lang.ClassLoader.defineClass (ClassLoader.java:1022) at java.security.SecureClassLoader.defineClass (SecureClassLoader.java:174) at java.net.URLClassLoader.defineClass (URLClassLoader.java:555) at java.net.URLClassLoader$1.run (URLClassLoader.java:458) at java.net.URLClassLoader$1.run (URLClassLoader.java:452) at java.security.AccessController.doPrivileged (Native Method) at java.net.URLClassLoader.findClass (URLClassLoader.java:451) at java.lang.ClassLoader.loadClass (ClassLoader.java:594) at java.lang.ClassLoader.loadClass (ClassLoader.java:527) at org.apache.maven.plugins.javadoc.JavadocUtil.getTagletClassNames (JavadocUtil.java:669)
我通过删除 

module-info.java

 来解决这个问题——即取消模块化我的 taglet 组件。

© www.soinside.com 2019 - 2024. All rights reserved.