我是eclipse PDE的新手。
我在eclipse中创建了功能项目。使用pde工具,我创建了一个build.xml。
当我从eclipse运行时,它运行正常,但是当我从外面运行它时(终端使用plugins/org.apache.ant_1.8.3.v20120321-1730/bin/./ant -verbose -debug -buildfile build.xml
)我收到错误
Problem: failed to create task or type eclipse.idReplacer
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.
另外,如果另一个ant脚本调用我的feature的build.xml,那么从eclipse开始,我得到同样的异常。
我阅读了eclipse博客,看起来bug已修复,而Andrew Niefer的解决方案在我的案例中无效。我也尝试从它的cvs和git下载org.eclipse.releng.eclipsebuilder,但我没能下载它们。
任何想法可能是什么问题?
我的配置, java版“1.7.0_09”, Eclipse插件开发环境版本:3.6.2.r362_v20110203-7b7mFL2FET3dhHalh1iNZtL 构建ID:M20110210-1200
Fedora14-64bit
答案 0 :(得分:1)
原因:名称未定义。表示ANT任务eclipse.idReplacer未知
因为您在Eclipse之外运行Ant,所以某些ANT&#39;任务&#39;名称未定义。 (供参考,&eclipse.idReplacer&#39;在Java类中定义:org.eclipse.pde.internal.build.tasks.IdReplaceTask在文件/ lib / pdebuild-antsrc / org / eclipse / pde / internal中/build/tasks/IdReplaceTask.java在... / eclipse / plugins / org.eclipse.pde.build_3.8.2.v20121114-140810 / lib / pdebuild-ant.jar Eclipse插件(在我的系统上) - 那个java class实现了IdReplaceTask类,它扩展了Task类,用于实现Ant的扩展。)
问题是独立的Ant不了解eclipse.idReplacer。添加一个Ant&#39; typedef&#39;标记到你的build.xml告诉Ant新的eclipse.idReplacer&#39;任务名称由... IdReplaceTask.class
定义 <typedef name="eclipse.idReplacer"
classname="org.eclipse.pde.internal.build.tasks.IdReplaceTask"/>
通过添加&#39; -lib&#39;告诉Ant在哪里找到... IdReplaceTask.class。 Ant命令行中的选项:
ant -f /mydir/moredir/build.xml -lib \app\androidDev\eclipse\plugins\org.eclipse.pde.build_3.8.2.v20121114-1 clean build.update.jar
上面命令中的关键是&#39; -lib ...&#39;选项告诉Ant在哪里找到... IdReplaceTask定义的jar。
答案 1 :(得分:0)
您可以尝试在Eclipse中导入jar(ant-contrib-1.0b3,您可以在Eclipse中下载并保存在eclipse / plugins / org.apache.ant_1.7.1.v20090120-1145 / lib中) - ?首选项 - &gt; Ant - &gt;运行时---&gt;在Ant主页条目中添加外部JAR。
您能否让我们看一下build.xml文件