Ошибка Checkstyle только в Unix - PullRequest
1 голос
/ 20 марта 2012

Я использую Ant для запуска пользовательского контрольного теста на основе регулярных выражений для * / .html файлов. Это очень простой конфиг. Ant build.xml:

<taskdef resource="checkstyletask.properties" classpath="checkstyle-5.5-all.jar"/>
<target name="check">
    <checkstyle config="checks.xml" failOnViolation="false">
        <fileset dir="${basedir}" includes="**/*.html"/>
        <formatter type="plain"/>
        <formatter type="xml" toFile="${basedir}/reports/checkstyle-report.xml"/>
    </checkstyle>
</target>

checks.xml:

<module name="Checker">
    <property name="charset" value="UTF-8"/>
    <module name="RegexpMultiline">
        <property name="format" value="\A.+&lt;table&gt;.+&lt;\/table&gt;.+\Z"/>
    </module>
</module>

В Windows 7 64bit:

Apache Ant(TM) version 1.8.3 compiled on February 26 2012,
BUILD SUCCESSFUL
Total time: 1 second

В CentOS 64bit:

Apache Ant(TM) version 1.8.2 compiled on May 13 2011,
BUILD FAILED
build.xml:8: Unable to create a Checker: cannot initialize module RegexpMultiline - Unable to instantiate RegexpMultiline

Может кто-нибудь предложить что-нибудь?

Спасибо

1 Ответ

1 голос
/ 21 марта 2012

Хорошо, просто запуск ant -v показал следующее:

parsing buildfile jar:file:/usr/share/java/ant-1.8.2.jar!/org/apache/tools/ant/antlib.xml with URI = jar:file:/usr/share/java/ant-1.8.2.jar!/org/apache/tools/ant/antlib.xml from a zip file
...
[checkstyle] checkstyle version 4.4
[checkstyle] compiled on Mon December 06 2010, 21:35 GMT

Таким образом, причина сбоя связана не столько с ОС, сколько с версией и конфигурацией установки Ant.

Я думаю, что происходит то, что контрольный стиль v4.4 выбирается из

/usr/share/java/ant-1.8.2.jar!/org/apache/tools/ant/antlib.xml

предпочтительнее того, что указано в build.xml:

<taskdef resource="checkstyletask.properties" classpath="${basedir}/checkstyle/checkstyle-5.5-all.jar"/>

Обновление:

Я не нашел checkstyle.jar в / usr / share / ant / lib /, но он был в / usr / share / java /

Не уверен, как Ant это поднял, но это то, что, наконец, решило проблему:

yum remove checkstyle4.noarch

Теперь Ant может свободно использовать .jar из проекта!

Другие могут найти этот вопрос стека переполнения

...