【发布时间】:2014-09-23 08:25:08
【问题描述】:
运行 ant 时出现问题,显示错误无法从资源 axis-tasks.properties 加载定义。找不到:
这是出现问题的 build.xml 的快照
<target name="axis" depends="prepare">
<taskdef resource="axis-tasks.properties"/>
<axis-wsdl2java url="${webconsole.base}/src/myservice.wsdl"
output="${axis.output}">
<mapping
namespace="urn:myservice"
package="com.company.service" />
<mapping
namespace="http://webserviceurl.com"
package="com.company.service" />
</axis-wsdl2java>
</target>
运行ant时出现如下错误:
/build.xml:76: Problem: failed to create task or type axis-wsdl2java
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.
环境属性:
export TMPDIR=$HOME/tmp
export RELEASE=$HOME/Release
export JAVA_HOME=/usr/java/current
export ANT_HOME=/usr/local/apache-ant-1.6.5
export PATH=$JAVA_HOME/bin:$ANT_HOME/bin:$PATH
其他信息
实际上,我们有两台构建机器。第一个只有 root 用户,我们手动创建了 /home/user 文件夹,例如/home/rajan 等。在这台机器上,当我们从 /home/rajan/R7_SP1_UTF8/vermaraj_R7_SP1/vobs/project/ip_src/AdminWebConsole ant 以 root 身份运行 ant 时,ant 工作正常。
echo $PATH = /usr/java/current/bin:/usr/local/apache-ant-1.6.5/bin:/usr/lib/qt-3.3/bin:/usr/local/sbin:/ usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
在第二台机器上,我们创建了个人用户帐户,当我们尝试从 /home/rajan/R7_SP1_UTF8/vermaraj_R7_SP1/vobs/project/ip_src/AdminWebConsole 以 root 或 rajan 身份运行 ant ant 不能正常工作。
echo $PATH : /usr/lib/qt-3.3/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root /bin
另外,在两台构建机器中,echo $CLASSPATH 都是空的
locate axis-ant.jar 的输出为:
- /home/Rajan/R7_SP1_UTF8/vermaraj_R7_SP1/vobs/project/ip_src/AdminWebConsole/lib/axis-ant.jar
- /home/Rajan/R7_SP1_UTF8/vermaraj_R7_SP1/vobs/project/ip_src/AdminWebConsole/output/war/WEB-INF/lib/axis-ant.jar
- /usr/local/apache-ant-1.6.5/lib/axis-ant.jar
ivy 不是一个选项,因为这是非常大的代码库的一部分,如果我们添加额外的库,它可能会产生问题。
【问题讨论】:
-
如果您不使用像 ivy 这样的工具(来管理您的运行时类路径依赖项),那么您将需要一些替代机制来确保您的构建具有所需的所有 3rd 方 jar。现在,如果您的代码作为一个用户正常运行,则表明另一个用户缺少 jars。检查根主帐户。丢失的 jar 很可能位于“$HOME/.ant/lib”下。总之,常春藤听起来很吓人,但非常值得努力。