我正在尝试编写一个SVN Post-Commit挂钩,以便在有人提交相关文件的任何更改时在网页上生成javadoc。
我是钩子概念的新手,但我没想到在生成javadoc时会遇到任何奇怪的错误。
java.lang.ClassCastException: com.sun.tools.javadoc.ClassDocImpl cannot be cast to com.sun.javadoc.AnnotationTypeDoc
at com.sun.tools.javadoc.AnnotationDescImpl.annotationType(AnnotationDescImpl.java:46)
at com.sun.tools.doclets.internal.toolkit.util.Util.isDeprecated(Util.java:811)
at com.sun.tools.doclets.formats.html.AbstractIndexWriter.printComment(AbstractIndexWriter.java:186)
在StackOverFlow上进行了几次成功搜索之后,我发现它与第三方注释有关。 (我使用Play框架并使用了许多其他库)
所以我在剧本中包含了所有内容:
#!/bin/sh
CLASSPATH="~/Play/play-1.1.1/;"
javadoc -d ~/svndoc/ -classpath $CLASSPATH -sourcepath ~/svntest/avon/trunk/ScoreDB/app @packages
但这会产生完全相同的错误。有时会有10个警告,但大部分时间都有27个警告。
你能帮助我吗?提前致谢, 碧玉
答案 0 :(得分:1)
您的类路径看起来不对。首先,它中应该没有;
(在Unix中,分隔符是:
,但最后不需要它)。其次,你真的在这个目录中有个别的类文件吗?如果有jar文件,你需要单独列出它们,或者在那里加*
(但要注意bash不会扩展它,因为你需要:
而不是空格。)< / p>
我不知道这是否可以解决问题。