es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿Cómo puede mostrar la descripción de error del enlace de PMD HTML Report en una carpeta local?

Estoy usando el analizador de código fuente PMD (PMD) para mi proyecto web de Java a través de tarea ant. La computadora está sin conexión a internet. Parte de la tarea ant es la siguiente:
“`
<target name="pmd">

<taskdef name="pmd" classname="net.sourceforge.pmd.ant.PMDTask">
<classpath>
<fileset dir="E:/pmd-bin-6.41.0/lib">
<include name="*.jar"/>
</fileset>
</classpath>
</taskdef>

<pmd shortfilenames="true" cachelocation="pmd.cache" encoding="UTF-8">

<pre><code><ruleset>web/resources/category/java/bestpractices.xml</ruleset>

<formatter type="html" tofile="report.html">
</formatter>

<fileset dir="src/java/">
<include name="**/*.java"/>
</fileset>
</code></pre>

</pmd>
</target>
“`
Cuando ejecuto el objetivo pmd, se genera correctamente el archivo report.html. El archivo html básicamente enumera tripletas de description>.

Por ejemplo:
foo.java…43…El inicializador de la variable "tempIDNo" nunca se usa (sobrescrito en la línea 67)

El description en este archivo html tiene un enlace como file:///E:ws/project/${pmd.website.baseurl}/pmd_rules_java_bestpractices.html#unusedassignment que no funciona. E:ws/project/ es la carpeta donde se encuentra mi proyecto.

De hecho, tengo todos los archivos html necesarios (como pmdrulesjava_bestpractices.html) descomprimidos en la carpeta E:/pmd-doc-6.41.0. ¿Podrías ayudarme a configurar el enlace del description en el archivo html para mostrar la carpeta local?

Gracias.

Tags:  ,

Answer

  1. Avatar for davy.ai

    Solución

    Para configurar el enlace de descripción en el archivo HTML para mostrar la carpeta local, debes modificar el objetivo pmd en el archivo build.xml de tu proyecto web en Java agregando el atributo linkprefix a la tarea pmd con el valor file:///E:/pmd-doc-6.41.0/. Esto le indicará a la tarea PMD que use la carpeta local para el enlace en lugar del sitio web en línea.

    El objetivo pmd modificado debe lucir así:

    <target name="pmd">
    
      <taskdef name="pmd" classname="net.sourceforge.pmd.ant.PMDTask">
        <classpath>
          <fileset dir="E:/pmd-bin-6.41.0/lib">
            <include name="*.jar"></include>
          </fileset>
        </classpath>
      </taskdef>
    
      <pmd shortfilenames="true" cachelocation="pmd.cache" encoding="UTF-8" linkprefix="file:///E:/pmd-doc-6.41.0/">
    
        <ruleset>web/resources/category/java/bestpractices.xml</ruleset>
    
        <formatter type="html" tofile="report.html">
        </formatter>
    
        <fileset dir="src/java/">
          <include name="**/*.java"></include>
        </fileset>
      </pmd>
    </target>
    

    Ten en cuenta que debes reemplazar E:/pmd-doc-6.41.0/ con la ruta real de tu carpeta local que contiene los archivos de documentación de PMD.

    Después de modificar el objetivo pmd, ejecuta la tarea pmd nuevamente para generar el informe HTML con los enlaces corregidos. El archivo report.html ahora debería mostrar la carpeta local en lugar del sitio web en línea en los enlaces de descripción.

Comments are closed.