https://ualhmis.github.io/MavenEjercicios
Recomendación de proceder en esta práctica:
- Clona este repositorio en tu PC, y prueba que se construya correctamente en tu Eclipse, ejecutando los goals
clean package
.- Debes configurar correctamente JDK en tu Eclipse tal y como se explica en el guión. Aunque se recomienda JDK8, también funciona con JDK11 y JDK14 (aun no lo hemos validado con JDK13).
- Para estar seguro de que todo ha ido bien, comprueba que se han ejecutado todos los tests y que en la carpeta
target/site/jacoco
se ha generado el informe de cobertura. - Para comprobar que se generan correctamente los informes de análisis estático de código, ejecuta los goals
clean package site
. De esta manera se crea el informe completotarget/site/index.html
. En el enlace informes del proyecto deben aparecer todos.
Si hay errores, el problema es de tu Eclipse: revisa la configuración de JDK.
-
Cuando funcione correctamente, abre el archivo
pom.xml
de este proyecto que tienes clonado y copia el contenido completo excepto las primeras lineas, es decir, desde la línea<properties>
hasta el final, y pégalo en el archivopom.xml
de tu proyecto, reemplazando del contenido que tenías por este. Si lo prefieres, ve copiando bloque a bloque depom.xml
a medida que se explica en el guión. Pero ten en cuenta:- No es recomendable escribir el código del archivo pom.xml a mano, porque la sintaxis XML es propensa a errores y Eclipse no comprueba gran parte de los errores que puedes cometer.
- Tampoco es recomendable copiar los bloques de código desde el documento pdf del guión, ya que algunos caracteres no se copian bien del pdf a texto plano (como los guiones '-').
- IMPORTANTE: no olvides copiar también en tu proyecto los archivos
spotbugs-security-exclude.xml
yspotbugs-security-include.xml
en la carpeta raiz de tu proyecto, al mismo nivel delpom.xml
. SpotBugs es la versión actualizada de FindBugs que incluye errores de seguridad. En el archivospotbugs-security-include.xml
aparecen los tipos de erorres que va a buscar, en principio solo los de seguridad (SECURITY
), pero puedes configurarlo para que busque también los de correctitud (CORRECTNESS
), código malicioso (MALICIOUS_CODE
), malas prácticas (BAD_PRACTICE
), etc, modificando la lineaBug category
(más info aquí):
<Bug category="SECURITY,MALICIOUS_CODE,CORRECTNESS,BAD_PRACTICE "/>
- Pruébalo poco a poco, es decir, ejecutando los goals que se indican en cada paso del guión. Para los informes de análisis estático de código, como FindBugs, comprobarás que al ejecutar
clean package findbugs:findbugs
solamente se genera el informe en formato XML en el archivotarget/findbugsXml.xml
, pero no se genera informe en formato HTML. Si deseas visualizar el informe de Findbugs en formato HTML debes ejecutar los goalsclean package site
. Lo mismo ocurre para SpotBugs: si deseas ejecutarlo "solo" debes lanzar los goalsclean package com.github.spotbugs:spotbugs-maven-plugin:spotbugs
, pero eso solo generará el archivo xmltarget/spotbugsXml.xml
. El informe HTML solamente se obtiene al lanzar el goalsite
.
-
Error en javadoc:
Unable to find javadoc command: The environment variable JAVA_HOME is not correctly set. -> [Help 1].
Solución: Añade manualmente la variable
JAVA_HOME
en la configuración de ejecución así - stackoverflowJAVA_HOME
debe indicar la carpeta en la que Java JDK está instalado en tu PC. En Windows 10, busca enC:\Program Files\Java\
y busca la versión concreta de JDK instalada, por ejemplo, si tienes instalado JDK8 será:Correct! - C:\Program Files\Java\jdk1.8.0_211 Wrong - C:\Program Files\Java\jdk1.8.0_211\bin Wrong - C:\Program Files\Java\jdk1.8.0_211\jre Wrong - C:\Program Files\Java\jre1.8.0_211\bin
-
Error en javadoc por la versión de Java:
Solución: Añade la versión de java en la configuración del plugin javadoc en el
pom.xml
<plugin>
<groupId>org.apache.maven.ugins</groupId>
<artifactId>maven-javadoc-plun</artifactId>
<version>3.2.0</version>
<configuration>
<source>8</source>
</configuration>
</plugin>
-
Error en
site
:Could not find resource '.../spotbugs-security-include.xml'. -> [Help 1]
Solución: copia en tu proyecto los archivos
spotbugs-security-exclude.xml
yspotbugs-security-include.xml
en la carpeta raiz de tu proyecto, al mismo nivel delpom.xml
-
Error de formatos
HTML,XML
en Dependecy Check:
La solución es poner cada formato en su propia etiqueta format
:
<plugin>
<groupId>org.owasp</groupId>
<artifactId>dependency-check-maven</artifactId>
<version>5.3.2</version>
<configuration>
<skipTestScope>false</skipTestScope>
<formats>
<format>HTML</format>
<format>XML</format>
</formats>
</configuration>
...
</plugin>