我正在尝试使用Ant构建从IBM RSA IDE内运行Ant任务…
我得到以下错误信息:
BUILD FAILED
build.xml:21: Could
not create task or type of type: getProjectData.
Ant could not find the task or a class this task relies upon.
This is common and has a number of causes; the usual
solutions are to read the manual pages then download and
install needed JAR files, or fix the build file:
- You have misspelt 'getProjectData'.
Fix: check your spelling.
- The task needs an external JAR file to execute
and this is not found at the right place in the classpath.
Fix: check the documentation for dependencies.
Fix: declare the task.
- The task is an Ant optional task and the JAR file and/or libraries
implementing the functionality were not found at the time you
yourself built your installation of Ant from the Ant sources.
Fix: Look in the ANT_HOME/lib for the 'ant-' JAR corresponding to the
task and make sure it contains more than merely a META-INF/MANIFEST.MF.
If all it contains is the manifest, then rebuild Ant with the needed
libraries present in ${ant.home}/lib/optional/ , or alternatively,
download a pre-built release version from apache.org
- The build file was written for a later version of Ant
Fix: upgrade to at least the latest release version of Ant
- The task is not an Ant core or optional task
and needs to be declared using <taskdef>.
- You are attempting to use a task defined using
<presetdef> or <macrodef> but have spelt wrong or not
defined it at the point of use
Remember that for JAR files to be visible to Ant tasks implemented
in ANT_HOME/lib, the files must be in the same directory or on the
classpath
Please neither file bug reports on this problem, nor email the
Ant mailing lists, until all of these causes have been explored,
as this is not an Ant bug.
下面是Ant构建文件:
<!-- Get property locationName. -->
<target name="config">
<echo message="${ear.project.name}" />
<getProjectData projectName="${ear.project.name}" />
</target>
我不太确定这里的问题是什么,因为错误信息似乎没有帮助。有什么建议吗?
我相信getProjectData是IBM对ant的扩展。像你一样,我有一个类似的错误,但我能够让它工作后,确保运行在相同的JRE作为工作区选项被启用(您可以通过右键单击构建文件,Run -as, Ant build…,并选择JRE选项卡上的选项)。
我在IBM信息中心发现了解决方案:
在与工作空间选项相同的JRE中运行启用类路径以访问正在执行的其他Ant任务特定于工作台的操作,例如
projectImport
;projectBuild
,workspaceBuild
,ejbDeploy
,earExport
。如果你的蚂蚁构建脚本使用任何执行工作台操作的Ant任务,验证您选择的在与工作空间相同的JRE中运行。选择;类中可能会得到以下错误消息控制台视图:Problem: failed to create task or type <Ant task> Cause: The name is undefined.
我使用的构建文件看起来像这样:
<?xml version="1.0"?>
<project name="Test" default="config" basedir=".">
<target name="config">
<getProjectData Basedir="${basedir}" />
<echo message="getProjectData: projectName=${projectName}
nature=${natureName}
workspace=${workspaceName}
basedir=${basedir}" />
</target>
</project>
和输出:
Buildfile: C:DATAjavaworkspacetest-javabuild.xml
config:
[getProjectData] Setting projectName=test-java
[getProjectData] Retrieved following Project Data :
[getProjectData] workspaceName=C:DATAjavaworkspace
[getProjectData] natureName=Java
[echo] getProjectData: projectName=test-java
nature=Java
workspace=C:DATAjavaworkspace
basedir=C:DATAjavaworkspacetest-java
BUILD SUCCESSFUL
Total time: 78 milliseconds