Java Ant XML Build失败,原因:名称未定义

时间:2018-02-09 05:19:37

标签: java xml ant

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

0 个答案:

没有答案