2013-11-11 2 views
0

моего основного build.xml выглядит следующим образом:Разрешающих с taskdef классов муравья и работает только требуется целевой

<path id="run.classpath"> 
     <pathelement location="${build.lib.dir}/ant-{version}.jar"/> 
     <pathelement location="${third-party.lib.dir}/some-{my-ver}.jar"/> 
</path> 

deploy.xml использует taskdef муравья задачу на одном из класса настоящих внутри третьей стороной баночки :

<taskdef name="run-third-party-exec" classname="package.name.ThirdPartyExec"/> 

суб-build.xml импорта основного build.xml & deploy.xml и пытается запустить муравей целевой присутствующую в deploy.xml, но терпит неудачу жалуясь

taskdef package.name.ThirdPartyExec cannot be found 

Как решить такую ​​проблему. Поскольку все задачи taskdefs & импортируются, мы импортируем файл перед тем, как выполнить его потерю. Не уверен, что добавить все жалобы третьей стороны в мусорный путь муравья правильно или нет?

ответ

0

Ваш <taskdef> должен знать, где находится package.name.ThirdPartyExec. Сделайте это путем предоставления классов:

<taskdef 
    name="run-third-party-exec" 
    classname="package.name.ThirdPartyExec" 
    classpathref="run.classpath" 
/> 
+0

третьей стороны банка (s) добавляет к классам муравья в главном-build.xml и, следовательно, classpathref не упоминаются в deploy.xml при taskdef вызова. И вызов объекта deploy.xml из файла sub-build.xml завершается с ошибкой, так как он не находит требуемого jar в pathpath объекта ant. – user1587504

+0

Сам по себе ваш '<путь id =" run.classpath ">' в main-build.xml doesn Не добавляйте ничего к классам. После того, как Ant запущен, нет никакого способа добавить к пути Ant пути. Отдельные задачи могут иметь свои собственные классы. Это то, что предоставляет classpathref - способ для задач иметь свои собственные пути класса. Ваши сценарии должны быть структурированы, поэтому сначала запускается '<путь id =" run.classpath ">', а затем ссылка на run.classpath может передаваться в задачи, которые в ней нуждаются. Дополнительную информацию см. В разделе [Дополнительные задачи] «Установка Apache Ant» (http://ant.apache.org/manual/install.html#optionalTasks). –

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