<div class="page"> <div class="cover text-center"> <img class="mx-auto" src=/itb/images/logo_mislata.png alt="logo"> # Generació Javadoc <div class="text-end fit-content ms-auto my-3 mt-auto pt-3"> <p><strong>Autor:</strong> Joan Puigcerver Ibáñez</p> <p><strong>Correu electrònic:</strong> j.puigcerveribanez@edu.gva.es</p> <p><strong>Curs:</strong> 2024/2025</p> </div> <div> <p class="fw-bold mb-0">Llicència: BY-NC-SA</p> <p class="d-none d-md-block">(Reconeixement - No Comercial - Compartir Igual)</p> <a href="https://creativecommons.org/licenses/by-nc-sa/4.0/deed.ca" target="_blank"> <img class="mx-auto" src="/itb/images/license.png" alt="Licence"/> </a> </div><!--license--> </div><!--cover--> </div><!--page--> {:toc} ## Introducció En aquest exemple anem a generar la documentació de la classe `Rectangle`. Posteriorment, aquesta documentació serà publicada mitjançant GitHub Pages. ## Codi font El codi font de la classe `Rectangle` és: ```java package ud6.examples; /** * Aquesta classe representa un Rectangle. * * @author Joan Puigcerver * @version 1.2 2022-12-12 */ public class Rectangle { /** * Amplada del rectangle. */ private int width; /** * Altura del rectangle. */ private int height; /** * Posició del vèrtex de baix a l'esquerra en l'eix X */ private int x; /** * Posició del vèrtex de baix a l'esquerra en l'eix Y */ private int y; /** * Crea un Rectangle especificant tots els atributs. * * @param width Amplada del Rectaqngle * @param height Altura del Rectaqngle * @param x Posició del rectangle en l'eix X * @param y Posició del rectangle en l'eix Y */ public Rectangle(int width, int height, int x, int y) { this.width = width; this.height = height; this.x = x; this.y = y; } /** * Crea un Rectangle a partir de l'amplada i l'altura. * Aquest rectangle està posicionat en l'origen de coordenades (0, 0). * * @param width Amplada del Rectangle. * @param height Alçada del Rectangle. */ public Rectangle(int width, int height) { this.width = width; this.height = height; this.x = 0; this.y = 0; } public int getWidth() { return width; } public void setWidth(int width) { this.width = width; } public int getHeight() { return height; } public void setHeight(int height) { this.height = height; } public int getX() { return x; } public void setX(int x) { this.x = x; } public int getY() { return y; } public void setY(int y) { this.y = y; } /** * Calcula l'àrea del rectangle. * * @return Àrea del rectangle * @since 1.1 */ public int area(){ // AREA = BASE * ALTURA return this.width * this.height; } /** * Comprova si el punt especificat (x, y) està dins del rectangle. * * @param x Coordenada del punt en l'eix X * @param y Coordenada del punt en l'eix Y * @return true si el punt (x, y) està dins del rectangle; false en altre cas. * @since 1.2 */ public boolean contains(int x, int y){ boolean insideX = (x >= this.x) && (x <= (this.x + width)); boolean insideY = (y >= this.y) && (y <= (this.y + height)); return insideX && insideY; } } ``` Com podeu observar, aquesta classe ha segut documentada mitjançant blocs Javadoc. ## Generació Javadoc Per generar la documentació cal anar a __Tools > Generate JavaDoc...__, on hem especificat les següents opcions: ![](/itb/DAM-ED/UD6/img/generate.png){.center} - __Scope__: S'ha triat la classe `Rectangle`. - __Output directory__: S'ha triat el directori __docs__, que s'ha creat anteriorment a l'arrel del projecte. - __Visibility level__: S'ha triat `private`, per generar la documentació de tots els elements. Una vegada generadà, podem veure que està disponible al directori __docs__: ![](/itb/DAM-ED/UD6/img/idea_docs.png){.center} Si hem deixat marcada l'opció _Open generated documentation in the browser_, s'obrirà automàticament la documentació en el navegador web, que podem consultar: ![](/itb/DAM-ED/UD6/img/javadoc.png){.center} Amb aquest procés, ja hauriem generat la documentació. ## Publicació a GitHub Pages Una vegada generada la documentació, podem publicar-la i fer-la pública mitjançant GitHub Pages. __GitHub Pages__ és un servei que ofereix GitHub que permet publicar una web estàtica allotjada en un repositori en el domini `github.io`. Podeu utilitzar aquest servei per publicar la documentació generada. Abans que res, cal pujar la documentació generada al repositori remot amb __Commit__ i __Push__. ![](/itb/DAM-ED/UD6/img/push.png){.center} Després, cal anar a __Settings > Pages__ i activar l'opció de publicació de GitHub Pages. En el nostre cas, hem de triar la branca `master` i el directori `docs`. > GitHub sols permet publicar webs estàtiques des de l'arrel del projecte o el directori docs. ![](/itb/DAM-ED/UD6/img/pages.png){.center} Una vegada configurat, GitHub publicarà la documentació del directori __docs__ cada vegada que fem un push, i serà publicada en l'adreça: ``` https://<owner>.github.io/<repo>/ ``` En aquest cas, s'ha publicat a https://fpmislata-daw1-ed.github.io/PuigcerverJoan-ED-solutions/