Пользовательская задача ant, представленная через antlib.XML

У меня есть банка с задачей муравья в нем. My com/mebigfatguy/stringliterals / antlib.xml is

<antlib >
   <taskdef name="stringliterals" classname="com.mebigfatguy.stringliterals.StringLiteralsTask"/>
</antlib>

запуск jar TF stringliterals.jar I получить

META-INF/
META-INF/MANIFEST.MF
com/
com/mebigfatguy/
com/mebigfatguy/stringliterals/
com/mebigfatguy/stringliterals/antlib.xml
com/mebigfatguy/stringliterals/SLClassVisitor.class
com/mebigfatguy/stringliterals/StringLiteralsTask.class
com/mebigfatguy/stringliterals/SLMethodVisitor.class
com/mebigfatguy/stringliterals/Literal.class
META-INF/maven/
META-INF/maven/com.mebigfatguy.stringliterals/
META-INF/maven/com.mebigfatguy.stringliterals/stringliterals/
META-INF/maven/com.mebigfatguy.stringliterals/stringliterals/pom.xml
META-INF/maven/com.mebigfatguy.stringliterals/stringliterals/pom.properties
com/mebigfatguy/org/
com/mebigfatguy/org/objectweb/
com/mebigfatguy/org/objectweb/asm/
com/mebigfatguy/org/objectweb/asm/AnnotationVisitor.class
com/mebigfatguy/org/objectweb/asm/AnnotationWriter.class
com/mebigfatguy/org/objectweb/asm/Attribute.class
com/mebigfatguy/org/objectweb/asm/ByteVector.class
com/mebigfatguy/org/objectweb/asm/ClassReader.class
com/mebigfatguy/org/objectweb/asm/ClassVisitor.class
com/mebigfatguy/org/objectweb/asm/ClassWriter.class
com/mebigfatguy/org/objectweb/asm/Context.class
com/mebigfatguy/org/objectweb/asm/Edge.class
com/mebigfatguy/org/objectweb/asm/FieldVisitor.class
com/mebigfatguy/org/objectweb/asm/FieldWriter.class
com/mebigfatguy/org/objectweb/asm/Frame.class
com/mebigfatguy/org/objectweb/asm/Handle.class
com/mebigfatguy/org/objectweb/asm/Handler.class
com/mebigfatguy/org/objectweb/asm/Item.class
com/mebigfatguy/org/objectweb/asm/Label.class
com/mebigfatguy/org/objectweb/asm/MethodVisitor.class
com/mebigfatguy/org/objectweb/asm/MethodWriter.class
com/mebigfatguy/org/objectweb/asm/Opcodes.class
com/mebigfatguy/org/objectweb/asm/Type.class
com/mebigfatguy/org/objectweb/asm/TypePath.class
com/mebigfatguy/org/objectweb/asm/TypeReference.class
com/mebigfatguy/org/objectweb/asm/signature/
com/mebigfatguy/org/objectweb/asm/signature/SignatureReader.class
com/mebigfatguy/org/objectweb/asm/signature/SignatureVisitor.class
com/mebigfatguy/org/objectweb/asm/signature/SignatureWriter.class

как вы можете видеть класс задачи есть

Я поставил банку в~/.ant / lib, и когда я пытаюсь запустить задачу, которая ссылается на него, как это:

<target name="literals"  description="generate report of string literals used in code">
    <stringliterals:stringliterals>
        <classpath refid="fb-contrib.classpath"/>
    </stringliterals:stringliterals>
</target>

Я получаю

константы:

синтаксический анализ buildfile jar: file: / home / dave/.ant/lib / stringliterals-0.2.0.jar!/com/mebigfatguy/stringliterals / antlib.xml с URI = jar: file: / home / dave/.ant/lib / stringliterals-0.2.0.jar!/com/mebigfatguy/stringliterals / antlib.xml из zip-файла
Поиск класса com.mebigfatguy.stringliterals.StringLiteralsTask

ОШИБКА СБОРКИ
/ главная/dave/dev/fb-contrib / build.xml: 245: при выполнении этой строки произошла следующая ошибка:
jar: file: / home / dave/.ant/lib / stringliterals-0.2.0.jar!/com/mebigfatguy/stringliterals / antlib.xml: 2: taskdef класс com.mebigfatguy.stringliterals.StringLiteralsTask не найден
использование classloader AntClassLoader[]
в org.апаш.инструменты.муравей.taskdefs.Definer.addDefinition (Definer.java: 607)
в org.апаш.инструменты.муравей.taskdefs.Definer.execute (Definer.java: 237)
в org.апаш.инструменты.муравей.taskdefs.Antlib.execute(Antlib.java: 177)
в org.апаш.инструменты.муравей.taskdefs.Definer.loadAntlib (Definer.java:428)
в org.апаш.инструменты.муравей.taskdefs.Definer.execute (Definer.java: 277)
в org.апаш.инструменты.муравей.ComponentHelper.checkNamespace (ComponentHelper.java:874)
в org.апаш.инструменты.муравей.ComponentHelper.getDefinition (ComponentHelper.java: 307)
в org.апаш.инструменты.муравей.ComponentHelper.createComponent (ComponentHelper.java: 284)
в org.апаш.инструменты.муравей.ComponentHelper.createComponent (ComponentHelper.java: 263)
в org.апаш.инструменты.муравей.UnknownElement.makeObject (UnknownElement.java:429)
в org.апаш.инструменты.муравей.UnknownElement.maybeConfigure (UnknownElement.java: 163)
в org.апаш.инструменты.муравей.Задача.выполнить задачи.java: 347)
в org.апаш.инструменты.муравей.Цель.execute (Target.java:435)
в org.апаш.инструменты.муравей.Цель.performTasks(Target.java: 456)
в org.апаш.инструменты.муравей.Проект.executeSortedTargets (Project.java: 1393)
в org.апаш.инструменты.муравей.Проект.executeTarget (Project.java: 1364)
в org.апаш.инструменты.муравей.помощник.DefaultExecutor.executeTargets(DefaultExecutor.java: 41)
в org.апаш.инструменты.муравей.Проект.executeTargets (Project.java: 1248)
в org.апаш.инструменты.муравей.Главная.runBuild (Main.java: 851)
в org.апаш.инструменты.муравей.Главная.startAnt(Main.java: 235)
в org.апаш.инструменты.муравей.запуск.Пусковая установка.run (Launcher.java: 280)
в org.апаш.инструменты.муравей.запуск.Пусковая установка.main (Launcher.java: 109)
Вызвано: java.ленг.ClassNotFoundException: com.mebigfatguy.stringliterals.StringLiteralsTask
в org.апаш.инструменты.муравей.AntClassLoader.findClassInComponents (AntClassLoader.java: 1366)
в org.апаш.инструменты.муравей.AntClassLoader.findClass(AntClassLoader.java: 1315)
в org.апаш.инструменты.муравей.AntClassLoader.loadClass(AntClassLoader.java: 1068)
на java.ленг.загрузчик классов.loadClass(ClassLoader.java: 357)
на java.ленг.Класс.forName0 (собственный метод)
на java.ленг.Класс.forName (Class.java: 348)
в org.апаш.инструменты.муравей.taskdefs.Definer.addDefinition (Definer.java: 579)
… Еще 21

Я сделал это несколько раз до этого без проблем, на этот раз, однако, я не вижу, где я пошел не так. Любой способ отладки этой проблемы classloader?

Проект GitHub здесь https://github.com/mebigfatguy/stringliterals

1 ответ

  1. Проблема оказалась плохо отформатированный файл манифеста. извините!