2015-09-25 18 views
9

Szukam korekty javadocs dla biblioteki, którą produkuje moja firma. Staramy się wykluczyć javadoki z klas, które tak naprawdę nie są przeznaczone do publicznej konsumpcji (głównie klasy używane wewnętrznie).Javadoc Wyklucz powoduje powodowanie błędów podczas importowania

Projekt używa gradle jako systemu kompilacji i zaznaczyłem pakiety/klasy, które chcemy wykluczyć w pliku build.gradle. Powoduje to jednak błędy. Spodziewam się otrzymać ostrzeżenie lub błąd, jeśli istnieje @link do klasy, która jest wykluczona, ale jest to również zgłaszanie błędów, gdy te wykluczone klasy są po prostu importowane. Czy istnieje sposób na "uwzględnienie" klas/pakietów, ale NIE eksportowanie do nich javadoc?

Edycja: Tutaj jest istotne zadanie javadoc:

task gendocs(type: Javadoc) { 
    options.stylesheetFile = new File("./assets/doc_style.css") 
    String v = "${SEMVER}" 
    version = v.replace("_", '.') 
    title = "SweetBlue ${version} API" 
    options.windowTitle = "SweetBlue" 
    options.memberLevel = JavadocMemberLevel.PROTECTED 
    options.author = true 
    options.linksOffline('http://d.android.com/reference', System.getenv("ANDROID_HOME") + '/docs/reference')  
    destinationDir = new File("${BUNDLE_FOLDER}/docs/api") 
    source = sourceSets.main.allJava 
    classpath += configurations.compile 
    exclude "com/idevicesinc/sweetblue/backend" 
    exclude "com/idevicesinc/sweetblue/utils/Utils**.java" 
    exclude "com/idevicesinc/sweetblue/utils/UpdateLoop.java" 
    exclude "com/idevicesinc/sweetblue/utils/Pointer.java" 
    exclude "com/idevicesinc/sweetblue/utils/HistoricalDataQuery.java" 
} 

Edit 2: Oto błąd mówię:

SweetBlue/src/com/idevicesinc/sweetblue/BleCharacteristic.java:5: error: cannot find symbol 
import com.idevicesinc.sweetblue.utils.Utils;          
symbol: class Utils 
location: package com.idevicesinc.sweetblue.utils 

Edit 3: To wydaje

że wyklucza się Zadanie grad javadoc NIE jest tym samym, co użycie polecenia -exclude w wierszu poleceń przy pomocy javadoc. Uruchomiłem test przy użyciu generowania javadoc CLI, a NIE otrzymałem błędów, które nie są znalezione podczas korzystania z Gradle.

+0

W jaki sposób ktoś może zdiagnozować, co się dzieje, gdy nie podaje się żadnych szczegółów na temat błędów? To może nie mieć znaczenia, ale wątpię, aby wzorzec "Utils **. Java" robił coś użytecznego. Prawdopodobnie powinno to być po prostu "Utils * .java". –

+0

Zaktualizowałem OP o błąd, o którym mówiłem. Przypuszczam, że wcześniej nie byłem wystarczająco jasny. To, co mam dla Utils, działa dobrze (istnieje kilka klas, które zaczynają się od Utils). Są właściwie wykluczone. –

+0

Nie mam pomysłów. Napisz szczegółową notatkę na forum Gradle. –

Odpowiedz

2

Javadoc musi wiedzieć o zaimportowanej klasie. Poinformuj javadoc, gdzie znaleźć pliki klas, a nie kod źródłowy java ze ścieżką klas!

Miałem ten sam problem z wygenerowanym przez XJC kodem, który generuje liczne błędy javadoc w środowisku ant. W celu wykluczenia ich z docs ale nadal spełniał javadoc ja po prostu powiedział zadania javadoc zajrzeć do folderu bin:

<target name="javadoc" description="create Javadoc documentation"> 
    <javadoc ...lots of irrelevant attributes skipped...> 
     <fileset dir="src"> 
      <include name="**/*.java"/> 
      <exclude name="my/jaxb/generated/source/*.java"/> 
     </fileset> 
     <classpath> 
      <path refid="myclasspath_to_referenced_libraries"/> 
      <pathelement location="bin"/> 
     </classpath> 
    </javadoc> 
</target> 
0

Więc problem jest trzeba powiedzieć zadanie Javadoc w którym znajdują się import zewnętrznych, więc może tworzyć (Hyper) -linków do niego w Javadoc HTML. Jeśli nie dbają o linki do klas zewnętrznych można ignorować problemy z tezy:

task gendocs(type: Javadoc) { 
    failOnError false 
    ... 
} 

Według Gradle Doc:

Określa, czy zadanie to powinno zawieść, gdy błędy występują podczas generowania Javadoc. W przypadku wartości true to zadanie zakończy się niepowodzeniem w przypadku błędu Javadoc. W przypadku wartości false to zadanie zignoruje błędy w Javadoc:

Powiązane problemy