муравей: не удалось создать задачу или тип
(Да, я прочитал и поиграл на основе ответов на похожие вопросы на этом форуме и во многих других, таких как JavaRanch - пока безрезультатно.)
Я создал собственную задачу муравья в соответствии с Apache doc.
Запустив муравья, я получаю:
BUILD FAILED
/home/russ/blackpearl/fun/build.xml:121: Problem: failed to create task or type sqlscriptpreprocessor
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.
at org.apache.tools.ant.UnknownElement.getNotFoundException(UnknownElement.java:487)
at org.apache.tools.ant.UnknownElement.makeObject(UnknownElement.java:419)
at org.apache.tools.ant.UnknownElement.maybeConfigure(UnknownElement.java:163)
at org.apache.tools.ant.Task.perform(Task.java:347)
Это в соответствии с целью в моемbuild.xml файл:
<target name="mysql-preprocess"
description="Preprocess MySQL database scripts into one file">
<sqlscriptpreprocessor inputfilepath="${basedir}/extras/blackpearl.sql.in"
outputfilepath="${basedir}/extras/blackpearl.sql" />
</target>
у меня естьмуравей-вно-1.0b3.jar по пути * $ ANT_HOME / lib *. у меня естьsqlscriptpreprocessor.jar на этом пути, плюс локальный путь к классам для моей сборки.
Пытаясь изгнать эту проблему, я попробовал каждую комбинацию следующего набора утверждений, которые я повсеместно использовал через Google, то есть одно из <taskdef ant-contrib> с одним из <taskdef sqlscriptpreprocessor> конструирует, два из первых с одним из последних, один из первых с двумя из последних, все вместе, ни один из них, и т. д.
<taskdef resource="net/sf/antcontrib/antlib.xml" />
<taskdef resource="net/sf/antcontrib/antcontrib.properties" />
<taskdef resource="net/sf/antcontrib/antcontrib.properties">
<classpath>
<pathelement location="/home/russ/dev/downloads/ant-contrib/ant-contrib-1.0b3.jar" />
</classpath>
</taskdef>
<taskdef name="sqlscriptpreprocessor" classname="com.etretatlogiciels.ant.task.SqlScriptPreprocessor" />
<taskdef resource="${basedir}/lib/ant-tasks/SqlScriptPreprocessor.properties"
classpath="${basedir}/lib/ant-tasks/sqlscriptpreprocessor.jar" />
<taskdef resource="${basedir}/lib/ant-tasks/SqlScriptPreprocessor.properties">
<classpath>
<pathelement location="${basedir}/lib/ant-tasks/sqlscriptpreprocessor.jar" />
</classpath>
</taskdef>
Обидно, что не так просто, как говорят, добавлять собственные задачи в ant.
Я был бы очень признателен за любые комментарии.
Спасибо,
Russ