我正在尝试编写一个调用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 logger,我收到此警告: -
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.
任何人都可以帮我解决这个问题
答案 0 :(得分:2)
您可以指定&#39;类&#39;类路径中的目录如下所示。删除&#39; SpecBuild.class&#39;来自pathElement位置的文件。您可以使用&#39; includes&#39;属性并提及其中的文件名或只包括&#39;类&#39;目录如下(如果有的话,排除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>
祝你好运。