2016-07-27 11 views
10

Ich versuche, die Dokumentation zu generieren, mit Javadoc, aus einer oder zwei heruntergeladenen JAR-Dateien (mit der Quelle natürlich, nachdem alles extrahiert).Ignoriere kleinere Fehler mit Javadoc

Aber mit Javadoc, auch in einer Ant-Datei, ich bin daran gehindert, dies wegen alberner Dinge zu generieren, speziell "Paket XXX existiert nicht" und "kann Symbol nicht finden" ... Ich möchte nur javadoc setzen der Text dieser Dinge (externe Verweise) in den HTML-Dokumenten, aber um alle gefundenen .java-Dateien zu dokumentieren ...

NB für alle Interessierten ist dies die Download-Seite mit den Download-Dateien (mit Quelle) von denen ich versuche, die API-Dokumentation zu generieren: http://logback.qos.ch/download.html

nach Mark Rotteveel Hilfe, meine Ant-Build-Datei sieht nun wie folgt aus:

... aber es gibt immer noch Fehler 1) über Pakete nicht gefunden, einschließlich "org.codehaus. [Xxx ...]" und "javax.mail. [Xxx ...]" und 2) über Symbole, die nicht gefunden werden (obwohl das weggehen kann, wenn ich die Fehler der fehlenden Pakete lösen kann).

NB der Build soll erfolgreich sein, aber ich bekomme Beschwerden über keine Quelldateien gefunden (wo gibt es in der Tat kommentierte .java-Dateien), und überhaupt wird kein HTML unter \ javadoc generiert.

später, nach Tony Pierce Erfolg in diese Dokumente zu erzeugen

Ant 1.9.6 installiert, geändert Pfad entsprechend, überprüft, um sicherzustellen, das war die Version verwendet wird ... versuchte es erneut. Erneut fehlgeschlagen. Dies war das Ende meiner Ausgabe:

[javadoc] D:\Desktop\Downloads\logback-1.1.7.tar\logback-1.1.7\logback-core\src\test\java\ch\qos\logback\core\appender\ConsoleAppenderTest.java:32: error: package org.junit does not exist
[javadoc] import static org.junit.Assert.assertEquals;
[javadoc]_______________________^

[javadoc] javadoc: error - No public or protected classes found to document.
[javadoc] 1 error
[javadoc] 100 warnings

BUILD SUCCESSFUL Total time: 2 seconds

Es erstellt den Javadoc-Ordner ... aber das ist leer.

NB über die oben genannten "Paket existiert nicht" Fehler (es gab viele andere): dieser ist besonders mystifizierend, wie ich dachte, Ant irgendwie standardmäßig Junit enthalten (NB Ich bin ein kompletter Neuling bei Ant, nur durcharbeiten " Ant in Aktion ").

Aber ... mit der Ant javac Aufgabe können Sie setzen includeAntRuntime="true" ... nach diesem Buch, das Ant eigenen junit.jar enthält. Leider unterstützt die Task javadoc dieses Attribut nicht.

später noch

Mein Denken war ein bisschen auf diese verworren, um ehrlich zu sein: der einfachste Weg, die ich gefunden habe javadocs von Drittanbietern Quelle Gläser zu kompilieren ist nur durch Extrahieren und dann die Verwendung von Befehlszeile, in der Regel:

javadoc -d docs -Xmaxwarns 10 -Xmaxerrs 10 -Xdoclint:none -sourcepath . -subpackages ch.qos.logback.core

... wie für javadoc für die eigenen Code scheint dies kein Problem in Gradle zu sein (ich nur bei Ant glimpsing, bewusst, dass die Zukunft Gradle ist ... und es ist nicht besonders schwer zu erreichen Griffe mit den Grundlagen).

NB Wenn Sie das Gradle STS-Plugin für Eclipse, installieren und dann ein neues Projekt erstellen mit Gradle STS-Assistent Ihre Build-Datei die Zeile

apply plugin: 'eclipse'

... eine der Auswirkungen von denen das heißt enthält von Standardmäßig werden sowohl die Quelle als auch die ausführbaren Dateien für alle Abhängigkeiten von Drittanbietern während des Builds unter GRADLE_HOME heruntergeladen. Ziemlich gut!

Antwort

6

Java 8 eingeführt doclint, die bestimmte Probleme als Fehler behandelt und die Dokumentation nicht erstellen. Sie können dies deaktivieren, indem Sie die Befehlszeilenoption -Xdoclint:none angeben.

Siehe auch: Turning off doclint in JDK 8 Javadoc

Eg in Ant Sie fügen Sie ein additionalparam="-Xdoclint:none"-Attribut auf die javadoc Aufgabe tun müssen. A (leicht modifiziert) Beispiel aus Jaybird:

<target name="javadocs" depends="init,set-driver-sources"> 
    <mkdir dir="${build.docs}"/> 
    <javadoc destdir="${build.docs}" 
      author="true" 
      version="true" 
      windowtitle="${Name} API" 
      doctitle="${Name}" 
      extdirs="${module.thirdparty}" 

      additionalparam="-Xdoclint:none" 

      excludepackagenames="${excludedPackages}" 
      bottom="Copyright &#169; 2001-2015 Jaybird (Firebird JDBC/JCA) team. All rights reserved."> 
     <arg line="${java.module.arg}"/> 
     <classpath refid="javac.driver.classpath"/> 
     <sourcepath> 
      <pathelement path="${source.java}"/> 
      <pathelement path="${source.jna-client}"/> 
     </sourcepath> 
     <sourcepath refid="source.java.openoffice"/> 
     <sourcepath refid="source.java.additional"/> 
     <link href="http://docs.oracle.com/javase/7/docs/api/"/> 
    </javadoc> 
</target> 
+0

Danke ... in der Tat war ich auf dieses gestoßen. Ich habe es versucht, wenn ich javadoc von der Kommandozeile aus starte (ohne Ant). Aber mit der Befehlszeile konnte ich auch nicht weiterkommen. Ah ... habe gerade deine Bearbeitung gesehen ... danke nochmal ... werde es studieren ... –

+0

habe versucht mit diesem zusätzlichen Param zu laufen ... gleiche Ergebnisse. Können Sie möglicherweise das Bit Ihrer Build-Datei anzeigen, in dem Sie excludedPackages definieren? –

+0

@mikerodent https://github.com/FirebirdSQL/jaybird/blob/master/build/init.xml#L198 Beachten Sie, dass Sie, wenn das Problem externe Referenzen sind, müssen Sie entweder auf die 'Classpath'-Elemente (also Sie Abhängigkeiten vom Klassenpfad haben) oder das 'link' Element (welches in meinem Fall auf die JDK api docs verweist). –

0

ich vereinfacht Build ein bisschen Datei und die javadoc erfolgreich gebaut. Hier ist, was ich getan habe:

  • die logback zip heruntergeladen
  • Expanded die Quellen Gläser innen in ein src Verzeichnis
  • Ran Ameise 1.9.6 unter Java 8 mit diesem:

    <?xml version="1.0" ?> 
    <project name="document logback core" default="doc"> 
        <target name="doc"> 
         <mkdir dir="javadoc" /> 
         <javadoc destdir="javadoc" sourcepath="src" 
          additionalparam="-Xdoclint:none" /> 
        </target> 
    </project> 
    

Es produziert eine Menge Warnungen, aber erstellt ein javadoc Verzeichnis mit HTML gefüllt.

Ich entfernte excludepackagenames und ließ das Element packagenames fallen. In jedem Fall verhindert packagenames="main.*" die Javadoc-Generierung, da die einzigen Root-Pakete im Jar ch und org sind.

+0

Danke. Versuchte es ... kein HTML oder irgendetwas erzeugt. Der einzige Unterschied, den ich sehen kann, ist, dass ich Ant 1.9.7 benutze! Über das Wochenende werde ich versuchen, Zeit zu finden, um Ant 1.9.6 zu benutzen ... Könnte es eine mystifizierende Windoze-Erlaubnis sein? –