Как заставить пользовательское правило Checkstyle работать в Hudson / Jenkins - PullRequest
5 голосов
/ 15 июня 2011

У меня проблемы с попыткой заставить контрольный стиль работать должным образом в Хадсон / Дженкинс.

Я создал собственное правило для контрольного стиля с минимальными правилами (просто чтобы посмотреть, работает ли оно) и поместил его на некоторый сервер: -

<?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>

У меня есть родительский пом, который выглядит так: -

<?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>

Фактический проект будет включать родительский pom, например: -

<?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>

Когда я выполняю mvn clean site из Eclipse, он работает просто отлично. Вместо того, чтобы видеть 1000+ ошибок в стиле проверки, используя значение по умолчанию config/sun_checks.xml, я получаю только 27 ошибок в стиле проверки.

Когда я запускаю его в Дженкинсе, по какой-то причине он не выбирает мое собственное правило для контрольного стиля. Я получаю более 1000 ошибок проверки стиля от Дженкинса. Я проверил журнал «Console Output» и не вижу никаких ошибок / предупреждений в checkstyle. Выполненная команда maven из Jenkins выглядит следующим образом: -

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

Я надеюсь, что смогу добавить опцию -e или -X, чтобы увидеть более надежный журнал, но я не могу найти место для их вставки в Jenkins.

Как мне заставить мое пользовательское правило стиля чека работать с Хадсоном / Дженкинсом?

Большое спасибо.

Ответы [ 2 ]

0 голосов
/ 23 декабря 2012

Я настраиваю, как Maven по-разному находит мое configLocation checkstyle.xml

возможно, это заставит Дженкинса работать.

Также, если вы создадите стандартную работу вместо работы maven в Jenkins, вы можетепо-прежнему выполнять maven цель, и вы можете просто добавить параметры

<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>

Здесь написано:

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

исходный код здесь:

https://github.com/blundell/CreateYourOwnCheckStyleCheck

0 голосов
/ 21 июля 2011

Вы можете добавить переключатель -e и -X в поле "Goals und Optionen".

Используете ли вы контрольный стиль из внешнего местоположения?Если это так, возможно, вы можете попробовать добавить checkstyle к вашему проекту в вашей VCS (когда это работает, это может быть проблема с сетью).Добавление checkstyle.xml в вашу VCS также имеет то преимущество, что вы получаете воспроизводимость ваших сборок (и других преимуществ, которые может предложить VCS).

...