2015-08-10 3 views
1

Я пытаюсь написать муравей сборки, который называет класс JavaClasspath элемент не баночка

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

может кто-нибудь, пожалуйста, помогите мне исправить это

ответ

2

Вы можете указать директорию «классы» в классе путь, как показано ниже. Удалите файл «SpecBuild.class» из местоположения pathElement. Вы можете использовать свойство «includes» и указать имя файла в нем или просто включить каталог «classes», как показано ниже (исключая пакет JUni test cases, если он есть).

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

Удачи.

+0

В моей ситуации мне понадобилось включить внутри моего дирмита, чтобы иметь имя '**/*'. Спасибо, ваш ответ мне очень помог. –

Смежные вопросы