2017-09-04 2 views
0

Wie erstelle ich Javadocs, die im Offline-Modus mit Dateien im lokalen Dateisystem verlinken?javadoc-Links im Offline-Modus zum Verknüpfen mit lokaler Kopie konfigurieren

Ich baue Javadocs für ein Java-Paket und möchte die Links von externen Paketen (einschließlich java.lang) auf eine lokale Kopie verweisen. Dies funktioniert durch die links-Eigenschaft wie folgt:

<configuration> 
    <links> 
    <link>/usr/share/doc/default-jdk-doc/api/</link> 
    </links> 
</configuration> 

jedoch die links Eigenschaft wird ignoriert, wenn Sie offline arbeiten, auch wenn auf eine lokale Kopie der javadocs verbindet. Mein Verständnis ist, dass in diesem Fall ich offlineLinks verwenden sollte, aber ich kann es nicht arbeiten lassen.

Alle Dokumentation, die ich für offlineLinks sehe, setzt url zu einer externen URL und location zu einer lokalen Datei. Der Anwendungsfall scheint Links zu externen Servern zu erstellen, indem eine lokale Kopie verwendet wird. Ich habe versucht, beide url und location auf den gleichen Wert zu setzen, aber dies scheint ignoriert zu werden.

<offlineLinks> 
    <offlineLink> 
    <url>/usr/share/doc/default-jdk-doc/api/</url> 
    <location>/usr/share/doc/default-jdk-doc/api/</location> 
    </offlineLink> 
</offlineLinks> 

Ich habe ein minimales Beispiel als github gist geschaffen, die ich wie so nenne:

mvn --offline javadoc:javadoc 

Es hat ein einzelnes Paket und Verfahren, die eine String als Argument verwendet. Ich möchte, dass die Javadocs einen Link zu einer lokalen Kopie der Dokumente erstellen, aber stattdessen bekomme ich String stattdessen mit docs.oracle.com verknüpft.

Antwort

0

Das Javadoc-Programm würde die -links-Option richtig behandeln, auch wenn es ein lokales Verzeichnis war und es keine ohne Internetverbindung gab. Das Problem ist das maven javadoc plugin, das die links Eigenschaft im Offline-Modus ignoriert. Die Lösung ist diese Option direkt mit dem javadoc Programm über die additionalparam Eigenschaft wie so passieren:

<configuration> 
    <additionalparam>-link /usr/share/doc/default-jdk-doc/api/</additionalparam> 
</configuration> 

Dies hat zwei Probleme:

  1. Es ist zu lang wird, wenn die Anbindung an viele verschiedene Pakete. In der Theorie sollte man in der Lage sein, mehrere -link Optionen in einem einzigen Parameter zu übergeben.
  2. Die additionalparam ist veraltet. Es gibt jedoch keine andere Maven-Eigenschaft, die Javadoc-Optionen direkt weitergibt, so dass sie hoffentlich nicht entfernt werden.

Die offlineLinks Eigenschaft, die auf die Kommandozeilenoption Karte würde -linkoffline scheint wirklich eine externe URL erforderlich. Ich bin mir nicht sicher, ob das im javadoc-Programm oder im maven javadoc-Plugin eine Voraussetzung ist.

Verwandte Themen