<path id="checkstyle.classpath">
<fileset dir="${basedir}/lib/">
<include name="checkstyle-6.12.1-all.jar" />
</fileset>
</path>
<target name="checkstyle">
<!-- CheckStyle -->
<taskdef resource="checkstyle.properties" classpath="C:\Users\Pil\Desktop\Workspace2\Cs376bDemoApp\lib
\checkstyle-6.12.1-all.jar" />
<checkstyle config="DsrJavaFormattingProfile.xml" classpath="C:\Users\Pil\Desktop\Workspace2\Cs376bDemoApp\lib
\checkstyle-6.12.1-all.jar" />
<fileset dir="${src}" includes="**/*.java" />
</target>
这是我的build.xml文件中的checkstyle目标。在使用StackOverFlow之前,我花了整整6个小时的时间进行调试,但我的最大努力证明是徒劳无功的。我一直遇到错误报告[taskdef]无法从资源checkstyle.properties加载定义。它无法找到。
BUILD FAILED
C:\Users\Pil\Desktop\Workspace2\Cs376bDemoApp\build.xml:86:
Problem: failed to create task or type checkstyle
Cause: The name is undefined.
Action: Check the spelling.
Action: Check that any custom tasks/types have been declared.
Action: Check that any <presetdef>/<macrodef> declarations have taken place.
我对此代码的意图是在我的src目录中的.java文件上使用我的DsrJavaFormattingProfile.xml。我试过用相对路径替换类路径&#34; lib /&#34;并且使用上面的checkstyle.classpath路径以及我能想到的每个可能的其他解决方案。
<taskdef resource="checkstyle.properties" classpathref="checkstyle.classpath" />
<checkstyle config="DsrJavaFormattingProfile.xml" classpathref="checkstyle.classpath" />
也导致了同样的错误。请救救StackOverFlow,我需要一个英雄。 https://www.youtube.com/watch?v=OBwS66EBUcY
更新:由CAustin解决
`
<target name="checkinit">
<path id="checkstyle.lib.path">
<fileset dir="lib" includes="checkstyle8.8all.jar" />
</path>
<taskdef resource="com/puppycrawl/
tools/checkstyle/ant/checkstyle-ant-task.properties" classpathref="checkstyle.classpath" />
</target>
<target name="checkstyle" depends="checkinit">
<!-- CheckStyle -->
<checkstyle config="${basedir}\DsrCheckStyleConfig.xml" classpathref="checkstyle.lib.path">
<path refid="project.sourcepath" />
</checkstyle>
</target>`