Classpath元素不是jar



我正在尝试编写一个调用Java类的ant构建

<target name="validate" depends="forge-jar">        
    <taskdef name="spec" classname="SpecBuild" classpathref="java.classpath" />
            <spec a="${forge}" mail="${mail}" dd="${dd}" wdd="${wdd}"/>
    </target>
<target name="forge-jar" >
            <path id="project.class.path">
            <pathelement location="classes/" />
            <pathelement path="classes/ant/tasks/SpecBuild.class" />
        </path>
        <path id="java.classpath">
            <path refid="project.class.path" />
        </path>
        <javac includeantruntime="false" srcdir="src" destdir="classes" classpathref="java.classpath">
            <filename name="**/SpecBuild.java" />
        </javac>
    </target>

在SpecBuild.java类中,如果我使用slf4j记录器,我会得到这个警告:-

CLASSPATH element /Users/classes/ant/tasks/SpecBuild.class is not a JAR.
  [taskdef] CLASSPATH element /Users/classes/ant/tasks/SpecBuild.class is not a JAR.

谁能帮我解决这个问题

您可以在类路径中指定'classes'目录,如下所示。从pathElement位置移除'SpecBuild.class'文件。你可以使用'includes'属性并在其中提及文件名,或者只包括'classes'目录,如下所示(如果有的话,请排除JUni测试用例包)。

  <classpath>
      <pathelement path="${classpath}"/>
      <fileset dir="lib">
        <include name="**/*.jar"/>
      </fileset>
      <pathelement location="classes"/>
      <dirset dir="${build.dir}">
        <include name="apps/**/classes"/>
        <exclude name="apps/**/*Test*"/>`enter code here`
      </dirset>
</classpath>

好运。

相关内容

  • 没有找到相关文章

最新更新