javadoc -d html pakiet - Fatcat - AGH
javadoc -d html pakiet - Fatcat - AGH
javadoc -d html pakiet - Fatcat - AGH
- No tags were found...
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
JavadocGenerowanie dokumentacji API
<strong>javadoc</strong>• Narzędzie ułatwiające pisanie dokumentacjitechnicznej programu (interfejs programisty)• Standardowo przetwarza automatyczniekomentarze na dokumenty HTML• Doclety pozwalają na tworzenie dokumentacji winnych formatach
Zalety• Dokumentacja zmieniana razem z kodem• Można tworzyć dokumentację nawet bez gotowychimplementacji• Dokumentacja w różnych formatach
Możliwości• Lista wszystkich <strong>pakiet</strong>ów• Lista wszystkich klas w poszczególnych <strong>pakiet</strong>ach• Hierarchia klas w pakiecie• Hierarchia i zależności między klasami w różnych<strong>pakiet</strong>ach• Użycie <strong>pakiet</strong>u• Opisy dla każdej klasy, interfejsu i <strong>pakiet</strong>u• Informacje o przestarzałym API• Alfabetyczny spis klas, interfejsów, konstruktorów, póli metod
Podstawy/** Komentarz dla klasy */public class MojaKlasa {/** Komentarz dla metody */public int Metoda() {return 1; }}/** Komentarz dla zmiennej */protected String napis;
Podstawy
Podstawy• Domyślnie <strong>javadoc</strong> przetwarza tylko składowepubliczne i chronione• Przykład – http://java.sun.com/j2se/1.5.0/docs/api/• Dodawanie komentarzy do <strong>pakiet</strong>ów – plik packageinfo.java:/** Komentarz dla paczki */package moja.paczka
Znaczniki dokumentacyjne - ogólne• @author autor• @version wersja• @see klasa (ew. klasa#metoda, info)• {@link klasa#metoda etykieta}• @deprecated• {@docRoot}• {@inheritDoc}
Znaczniki dokumentacyjne dla metod• @param parametr opis• @return opis• @throws wyjątek opis• @exception wyjątek opis
Uruchamianie• Manual– <strong>javadoc</strong> lub <strong>javadoc</strong> –help• Generowanie dokumentacji– <strong>javadoc</strong> [opcje] nazwa_<strong>pakiet</strong>u– <strong>javadoc</strong> [opcje] nazwa_pliku.java
Opcjeoverview publicprotectedpackageprivatetylko klasy public i ich składowedodatkowo klasy protectedjw + klasy widoczne w pakieciedokumentacja dla wszystkich klasi składowych
Opcje-doclet nazwa_pliku-docletpath -sourcepath -classpath plik klasowy z docletemdo pliku .class docletudo plików źródłowychdo plików .class-exlude -subpackages <strong>pakiet</strong>y wykluczonerekurencyjnie-encoding kodowanie pliku źródłowego
DocletyDoclet jest oddzielnym programem napisanym w językuJava, z API docletu, który określa zawartość i format plikuwyjściowego, który ma być wygenerowany przez Javadoc.Przykład użycia:<strong>javadoc</strong> -docletJP.co.esm.caddies.doclets.UMLDoclet -private*.java
Standardowy doclet-d katalog – katalog docelowy-version – uwzględnia znacznik @version-author – uwzględnia znacznik @author-splitindex – dzieli index wg liter alfabetu-use – informuje o uzyciu klas-nodeprecated – ukrywa @deprecated-noindex – nie generuje indeksu-notree – bez hierarchii klas-nohelp – bez strony pomocy
Standardowy doclet-header - nagłówek dla każdej strony-bottom - wstawia kod na dole strony-footer - stopka-docencoding - nazwa kodowania-charset - użyty zestaw znaków
Własny docletimport com.sun.<strong>javadoc</strong>.*;public class KlasaWypisz{public static boolean start(RootDoc root){classDoc[] klasy = root.classes();for (int i = 0; i , klasy.length; ++i){System.out.println(klasy[i]);}}}
Ćwiczenie•Rozpakować załączony projekt i uruchomić wewnątrz kataloguProjekt. Porównać wynik ze strukturą projektu i treściąkomentarzy:•<strong>javadoc</strong> -d <strong>html</strong> <strong>pakiet</strong>•<strong>javadoc</strong> -d <strong>html</strong> -subpackages <strong>pakiet</strong>•<strong>javadoc</strong> -d <strong>html</strong> -subpackages -public <strong>pakiet</strong>•<strong>javadoc</strong> -d <strong>html</strong> -subpackages -protected <strong>pakiet</strong>•<strong>javadoc</strong> -d <strong>html</strong> -subpackages -package <strong>pakiet</strong>•<strong>javadoc</strong> -d <strong>html</strong> -subpackages -private <strong>pakiet</strong>•<strong>javadoc</strong> -d <strong>html</strong> -overview ./overview.<strong>html</strong> -charset "utf-8"-author -subpackages <strong>pakiet</strong> -package• Dodać własne komentarze: atrybutu prywatnego Klasa.intAtr metody Klasa.metoda metody KlasaPackage.metodaWyjatkowa
<strong>javadoc</strong> domyslnie przetwarza tylko skladowe public i protected(tylko te widzi uzytkownik), <strong>pakiet</strong>owe i chronione opcjainfo o calej aplikacji (zestawie papkietow) w plikuoverview.<strong>html</strong>@link zamiast see also (@see) widac etykiete<strong>javadoc</strong> d <strong>html</strong> <strong>pakiet</strong> overview ./overview.<strong>html</strong> docencoding"utf8" charset "utf8"
DoxygenNarzędzie do automatycznegogenerowania dokumentacji
DoxygenDoxygen generator dokumentacji dla języków C++, C,Java, ObjectiveC, Python, IDL i do pewnego stopnia dlaPHP, C#, D oraz ActionScript.Doxygen jest tworzony dla systemu Linux i Mac OS woparciu o bibliotek, e Qt. Dostępny również w wersjibinarnej na WindowsDoxywizard graficzna aplikacja ułatwia tworzeniepliku konfiguracyjnego dla dokumentacji danego projektu.
Formaty wyjścioweObsługuje on następujące formaty wyjściowe: HTML,CHM (format plików pomocy Windows), RTF, PDF,LaTeX wraz z Makefile, PostScriptStrony man
Sposoby komentowania koduAby wygenerować dokumentację przy pomocy programuDoxygen należy wczesniej odpowiednio zakomentować kod.Można to zrobić na kilka sposobów:1. Komentarze wielolinijkowe/****Komentarz**//*!**Komentarz**/
Sposoby komentowania kodu cd.Gwiazdki przed tekstem komentarza są opcjonalne,komentarze można zapisać tak:/**Komentarz*//*!Komentarz*/2. Komentarze jednolinijkowe (przed lub za treścią komentarzamusi znaleźć sie przynajmniej jeden pusty komentarz)://////Komentarz/////!//!Komentarz//!
Znaczniki komentarzyW komentarzach można używać specjalnych znacznikówzaczynających się od @ lub\:@mainpage – dodaje tekst na stronę główną@brief – skrócony opis funkcji/klasy@author XYZ – Dodanie sekcji Autor@date 2006.12.12 – Dodaje sekcję Data@version 1.0 – Dodaje sekcję Wersja@attention text – Dodaje sekcję Uwaga i wpisuje tam text@return text – opis wartości zwracanych przez funkcję@image format filename – dodaje plik graficzny
Znaczniki komentarzy cd.@class – oznacza, że dokumentowana będzie klasa @fn oznacza, że dokumentowana będzie funkcja@par – tworzy nowy paragraf z dokumentacją@par tytul – j.w. Z tytułem 'tytul'@param nazParam Opis Opis parametrówprzyjmowanych przez metodęChcąc użyć w dokumentacji któregoś ze znaków: $,@, \, &, ~, , #, %, musimy zastosować backslash (\).
Tworzenie pliku konfiguracyjnegoOd pliku konfiguracyjnego zależy, jak będziezachowywał się Doxygen przy generowaniu dokumentacji.Plik konfiguracyjny można stworzyć na trzy sposoby:Wygenerować go korzystając z opcji "Wizard..." programuDoxywizard,Skorzystać z opcji "Expert..." Doxywizard,Stworzyć go w linii poleceń na podstawie wzorcowego plikukonfiguracyjnego.
Doxywizard: WizardDoxywizard uruchamiamy poleceniem:user@fatcat:~$ doxywizardnastępnie tworzymy plik konfiguracyjny w 4 prostych krokach:Krok 1: Klikamy opcję ”Wizard” i podajemy kilka informacji oprojekcie: nazwę, wersję, ścieżki do kodów źródłowych. Jeśli plikiźródłowe projektu znajdują się w drzewie katalogów należyzaznaczyć opcję ”Scan recursively”
Doxywizard: Wizard cd.Krok 2: Po ustawieniu opcji z kroku poprzedniego klikamy ok izapisjemy plik konfiguracyjny o domyślnej nazwie DoxyfileKrok 3: Wybieramy katalog roboczyKrok 4: Generujemy dokumentację uruchamiając Doxygenaprzyciskając przycisk ”Start”. Czekamy chwilę na informację :"*** Doxygen has finished".To wszystko dokumentacja została wygenerowana.
Konfiguracja w linii poleceńKonfiguracja na podstawie wzorcowego pliku konfiguracyjnego.Wzór pliku konfiguracyjnego tworzymy poleceniem:user@fatcat:~$ doxygen.exe -gnazwaPlikuConfbądź samym:user@fatcat:~$ doxygen.exe -gwtedy wzór zostanie zapisany pod domyślną nazwą "Doxyfile".
Konfiguracja w linii poleceń cd.Następnie należy wyedytować ten plik i pozmieniać zapisanew nim opcje według uznania (w większości przypadków sprowadzasię to do wpisania przy opcji słowa "YES" bądź "NO").Aby wygenerować dokumentację wydajemy polecenie:bądź samouser@fatcat:~$ doxygen.exe nazwaPlikuKonfiguracyjnegouser@fatcat:~$ doxygen.exejeśli nasz plik nazywa się "Doxyfile".
Parametry KonfiguracjiOpcje projektu:PROJECT_NAME – nazwa projektuPROJECT_NUMBER – wersja projektuOUTPUT_LANGUAGE – język dokumentacjiOUTPUT_DIRECTORY – katalog wyjściowy dokumentacjiEXTRACT_ALL – określa czy funkcje i składowe które nie mają opisuw kodzie źródłowym mają się znaleźć w dokumentacji
Parametry KonfiguracjiOpcje procesu tworzenia dokumentacji:QUIET – włącza/wyłącza komunikaty DoxygenaWARNING – włącza/wyłącza ostrzeżeniaWARN_FORMAT – pozwala określić format ostrzeżeńOpcje dotyczące plików:INPUT – pliki źródłowe na podstawie których generujemydokumentację, może być katalogFILE_PATTERN – filtruje pliki na podst. wyrażeń regularnychRECURSIVE – czy dołączać pliki z podkatalogów
Doxywizard: ExpertStanowi jedynie graficzny interfejs, który pozwala w łatwysposób edytować plik Doxyfile.
Prosty przykład generowaniadokumentacjiOto fragment pliku zakomentowanego w sposób ”czytelny” dlaDoxygena dla którego generuje on dokumentację:/*** @mainpage* @author User* @date 2008.11.13* @version 1.0*/#include#includeusing namespace std;/****\class UL*@brief Klasa przechowujaca ulamek**l i m to 2 zmienne typu int reprezentujace licznik i mianownik ulamkow*@n uzywanych do sumowania w funkcji main zapomoca przeladowanego operatora '+'*/class UL{private:int l;int m;public:...
ĆwiczeniePobrać cały plik którego fragment zamieszczono napoprzednim slajdzie i wygenerować dla niego dokumentacjęużywając programu Doxygen (Doxywizard).Plik znajduje się pod adresem:http://fatcat.ftj.agh.edu.pl/~i6gozdur/IO/dok2/ulamki.cppMożna ją porównać z dokumentacją w HTML, którąwygenerowano wczesniej:http://fatcat.ftj.agh.edu.pl/~i6gozdur/IO/dok2/<strong>html</strong>/
Zadanie1. Edytować jeden ze swoich plików źródłowych.2. Dodać do niego komentarze pozwalające wygenerowaćdokumentację przez Doxygen.3. Wygenerować dokumentację na wszystkie 3 możliwe sposobytzn: Doxywizard Doxywizard→→WizardExpertZ linii poleceń
LinkiPoniżej podaję kilka linków które mogą być pomocne w wykonaniudokumentacji:Strona Główna Doxygena:http://www.doxygen.org/Doxygen – wprowadzeniehttp://icis.pcz.pl/~agrosser/test/doxygen.pdfGenerowanie dokumentacji w Doxygen'iehttp://grafit.mchtr.pw.edu.pl/~mozaryn/ZAP/ZAP2/zap_2_03.pdf