2014-09-25 3 views
49

Jakie są najlepsze rozwiązania podczas uruchamiania javadoc przy użyciu JDK 8 i jeden otrzymuje ten błąd.Javadoc w JDK 8: Niepoprawny "element samozamykający się"

Wydaje się, że dla JDK 8 podjęto decyzję, że znaczniki takie jak <br /> i <p /> powinien generować błędów, ponieważ są one nieważne (surowe) HTML 4. see discussion JDK mailing list here

Zastanawiam się, bo chciałem tylko skompilować jakiś java projekt wykorzystujący maven i potknął się o ten problem. Oczywiście, mogę zgłosić bilet z projektem (i myślę, że to zrobię), ale byłoby wspaniale, gdyby istniał sposób na wyłączenie tego zachowania (dla komputera). W przeciwnym razie spodziewam się, że wiele projektów musi zostać naprawionych, zanim będą mogły zostać zbudowane na JDK 8 bez problemów.

+5

Czy -Xdoclint: brak działa? –

+0

Dzięki za wskazanie tej opcji! – JE42

+2

Googling dla tej opcji dał bardzo ładny link: http://blog.joda.org/2014/02/turning-off-doclint-in-jdk-8-javadoc.html – JE42

Odpowiedz

25

Dla tych dwóch szczególnych przypadków, myślę, że zalecanym działaniem jest zastąpienie ich numerem <p>. This to łącze do dokumentacji Oracle.

+0

Najlepsze zalecenie pochodzi z @ JE42, aby ustawić '-Xdoclint: none. 'Używając tego http://blog.joda.org/2014/02/turning-off-doclint-in-jdk-8-javadoc.html – Abhijeet

14

Zrobione z „What's New in JDK 8” z Oracle.com:

Narzędzie javac ma teraz wsparcie dla sprawdzenia zawartości komentarzy javadoc dla problemów, które mogłyby prowadzić do różnych problemów, takich jak nieprawidłowy HTML lub kwestie dostępności, w plikach generowanych podczas uruchamiania javadoc. Ta funkcja jest włączona przez nową opcję -Xdoclint. Aby uzyskać więcej informacji, zobacz dane wyjściowe z uruchamiania "javac -X". Ta funkcja jest również dostępna w narzędziu javadoc i jest domyślnie włączona.

Teraz zrobiłem to, co mi kazano. W JDK 7 dane wyjściowe "javac -X" nie zawierają opcji -Xdoclint. Jednak w JDK 8, to daje:

-Xdoclint:(all|none|[-]<group>)[/<access>] 
    Enable or disable specific checks for problems in javadoc comments, 
    where <group> is one of accessibility, html, missing, reference, or syntax, 
    and <access> is one of public, protected, package, or private. 

Tak, uruchom narzędzie Javadoc następująco:

javadoc.exe -Xdoclint:none <other options...> 

W moim skrypcie, błąd Wspomniał pan zniknął za pomocą tej opcji.

+1

Tak, zgadza się. Jednak javdoc JDK 7 nie powiedzie się z tą opcją, co oznacza, że ​​musisz wykryć obsługę nowej opcji. W końcu skończyłem naprawianie html. – JE42

+0

Jeśli projekt korzysta z programu maven, można użyć profili, które aktywują tylko dla jdk8. Lepiej jest po prostu naprawić kod HTML, jeśli możesz i zgłosić błąd w projekcie. –

13

Aby usunąć błędy w Javadocs wystarczy wymienić:

  • <p/> z zaledwie <p>
  • <br/> z zaledwie <br>

Wszystko działa poprawnie po korekcie w wyłączonych sposób.