2011-06-15 6 views
5

Tengo problemas para hacer que el estilo de comprobación funcione correctamente en Hudson/Jenkins.Hacer que la regla personalizada de Checkstyle funcione en Hudson/Jenkins

creé una regla Checkstyle personalizado con reglas muy mínimos en el mismo (sólo para ver si funciona) y colocarlo en algún servidor: -

<?xml version="1.0"?> 
<!DOCTYPE module PUBLIC 
      "-//Puppy Crawl//DTD Check Configuration 1.3//EN" 
      "http://www.puppycrawl.com/dtds/configuration_1_3.dtd"> 

<module name="Checker"> 
    <module name="RegexpSingleline"> 
     <property name="format" value="\s+$" /> 
     <property name="minimum" value="0" /> 
     <property name="maximum" value="0" /> 
     <property name="message" value="Line has trailing spaces." /> 
    </module> 
</module> 

tengo un pom matriz que tiene este aspecto: -

<?xml version="1.0" encoding="UTF-8"?> 
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> 
    <modelVersion>4.0.0</modelVersion> 
    <groupId>a.b</groupId> 
    <artifactId>c</artifactId> 
    <packaging>pom</packaging> 
    <version>1.0</version> 

    <build> 
     <plugins> 
      <plugin> 
       <groupId>org.apache.maven.plugins</groupId> 
       <artifactId>maven-compiler-plugin</artifactId> 
       <version>2.3.2</version> 
       <configuration> 
        <source>1.5</source> 
        <target>1.5</target> 
       </configuration> 
      </plugin> 
     </plugins> 
    </build> 

    <reporting> 
     <plugins> 
      <plugin> 
       <groupId>org.apache.maven.plugins</groupId> 
       <artifactId>maven-checkstyle-plugin</artifactId> 
       <version>2.4</version> 
       <configuration> 
        <configLocation>http://server/checkstyle.xml</configLocation> 
       </configuration> 
      </plugin> 
     </plugins> 
    </reporting> 
</project> 

el proyecto real incluirá el pom de los padres, así: -

<?xml version="1.0" encoding="UTF-8"?> 
<project> 
    <parent> 
     <groupId>a.b</groupId> 
     <artifactId>c</artifactId> 
     <version>1.0</version> 
    </parent> 

    <modelVersion>4.0.0</modelVersion> 
    <groupId>some</groupId> 
    <artifactId>project</artifactId> 
    <packaging>jar</packaging> 
    <version>1.0</version> 

    ... 
</project> 

Cuando EXECU te mvn clean site de Eclipse, funciona muy bien. En lugar de ver más de 1000 errores de estilo de control usando el valor predeterminado config/sun_checks.xml, recibo solo 27 errores de estilo de control.

Cuando lo ejecuto en Jenkins, por alguna razón, no está recogiendo mi regla de estilo de cheque personalizado. Recibo más de 1000 errores de Checkstyle de Jenkins. Revisé el registro de "Salida de consola" y no veo ningún error/advertencia en checkstyle. El comando experto ejecutado desde Jenkins tener este aspecto: -

<===[HUDSON REMOTING CAPACITY]===>channel started 
Executing Maven: -B -f D:\hudson\jobs\test\workspace\pom.xml clean site 
[INFO] Scanning for projects... 
... 

Estoy esperando a ser capaz de añadir o -e-X opción para ver un tronco más robusto, pero no puedo encontrar un lugar para insertarlos en Jenkins.

¿Cómo hago para que mi regla de cheque personalizado funcione con Hudson/Jenkins?

Muchas gracias.

Respuesta

0

Puede agregar el interruptor -e y -X en el campo "Objetivos y opciones".

¿Hace referencia al estilo de comprobación desde una ubicación externa? De ser así, quizás pueda intentar agregar un estilo de control a su proyecto en su VCS (cuando esto funcione, podría ser un problema de red). Agregar checkstyle.xml a su VCS también tiene la ventaja de que tiene reproducibilidad de sus compilaciones (y las otras ventajas que VCS tiene para ofrecer).

0

I fijó cómo Maven encuentra mi configLocation checkstyle.xml diferente

tal que ponerlas a trabajar Jenkins.

Además, si se crea un puesto de trabajo estándar en lugar de un trabajo experto en Jenkins todavía se puede ejecutar un gol experto y simplemente puede añadir parámetros

<project 
    xmlns="http://maven.apache.org/POM/4.0.0" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 

    ... 

    <properties> 
    <checkstyle.config.location>http://server/checkstyle.xml</checkstyle.config.location> 
    </properties> 

    <build> 
    ... 

     <plugin> 
     <groupId>org.apache.maven.plugins</groupId> 
     <artifactId>maven-checkstyle-plugin</artifactId> 
     <version>2.9.1</version> 
     </plugin> 
    </plugins> 
    </build> 

</project> 

escrito aquí:

http://blog.blundell-apps.com/create-your-own-checkstyle-check/

código de fuente aquí:

https://github.com/blundell/CreateYourOwnCheckStyleCheck

Cuestiones relacionadas