2011-03-15 88 views
2

我试图编写一个SVN Post-Commit挂钩,以便在有人向相关文件提交任何更改时在网页上生成javadoc。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) 

在计算器上一些成功的搜索后,我发现它有一些东西需要与第三方的注解。 (我使用的Play框架和使用其他一些库)

所以我包括在脚本中的一切:

#!/bin/sh 

CLASSPATH="~/Play/play-1.1.1/;" 

javadoc -d ~/svndoc/ -classpath $CLASSPATH -sourcepath ~/svntest/avon/trunk/ScoreDB/app @packages 

但这产生完全相同的错误。有时有10个警告,但大多数时候有27个警告。

你们能帮我吗?

由于提前, 碧玉

+1

@razlebe从标题中删除“Javadoc:”不是一个改进。 “没有语境的第三方图书馆注释”是一个可怕的标题。 – 2011-03-15 16:34:10

+0

@帕斯卡欣赏您的观点。我根据在Meta上回答的问题中的一般感觉进行编辑,在标题中伪造问题是不合需要的。无可否认,我本可以找到更好的重新措词。 – razlebe 2011-03-15 16:54:37

回答

1

CLASSPATH中看起来是错误的。首先,它不应该有;(在Unix中,分隔符是:,但最终不需要)。其次,你真的有这个目录中的单个类文件吗?如果存在jar文件,则需要单独列出它们,或者在其中放置一个*(但请注意,bash不会扩展它,因为您需要使用:而不是两者之间的空格)。

虽然,我不知道这是否能解决问题。

+0

我不知道classpath没有递归搜索.jar文件,谢谢!这解决了它! – Jasper 2011-03-15 17:44:40