2011-03-15 106 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