仅在Unix上出现校验样式错误



我正在使用Ant为*/.html文件运行一个自定义的基于正则表达式的checkstlye。这是一个非常简单的配置。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 64位:

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

有人能提出什么建议吗?

谢谢,

好的,所以简单地运行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"/>

更新:

我在/usr/share/ant/lib/中没有找到checkstyle.jar,但在/usr/share/java/中有一个

不确定蚂蚁是如何发现的,但这就是最终解决问题的原因:

yum remove checkstyle4.noarch

现在Ant可以自由使用项目中的.jar了!

其他人可能会发现这个堆叠流问题与有关

相关内容

  • 没有找到相关文章

最新更新