ant命令在执行时显示错误:找不到resource axis-tasks.properties
运行ant时出现问题,显示错误无法从resource axis-tasks.properties加载定义。找不到: 下面是build.xml的快照,问题发生在该快照上 其他信息 实际上,我们有两台机器。第一个只有根用户,我们在这台机器上手动创建了/home/user文件夹,例如/home/rajan等。当我们从/home/rajan/R7_SP1_UTF8/vermaraj_R7_SP1/vobs/project/ip_src/AdminWebConsole 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/sbin:/usr/bin:/root/bin 在第二台机器上,我们创建了单独的用户帐户,当我们尝试从/home/rajan/R7_SP1_UTF8/vermaraj_R7_SP1/vobs/project/ip_src/AdminWebConsole ant以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都是空的 找到axis-ant.jar,输出如下:ant命令在执行时显示错误:找不到resource axis-tasks.properties,ant,axis2,wsdl2java,Ant,Axis2,Wsdl2java,运行ant时出现问题,显示错误无法从resource axis-tasks.properties加载定义。找不到: 下面是build.xml的快照,问题发生在该快照上 其他信息 实际上,我们有两台机器。第一个只有根用户,我们在这台机器上手动创建了/home/user文件夹,例如/home/rajan等。当我们从/home/rajan/R7_SP1_UTF8/vermaraj_R7_SP1/vobs/project/ip_src/AdminWebConsole ant以根用户身份运行时, echo
ivy不是一个选项,因为它是非常大的代码库的一部分,如果我们添加额外的库,它可能会产生问题。axis-task.properties是axis-ant.jar的一部分,但它不适用于ant:
/build.xml:76:问题:无法创建任务或键入axis-wsdl2java
它需要在ant类路径上。 一个简单的方法是将所有axis jar放在ANT_HOME/lib中,但这会污染ANT core的安装。最好按照axis.apache.org上的描述将其放入自己的路径中
另一种方法是将所有ant插件库或第三方JAR放在一个特殊文件夹中,并通过ant_ARGS环境变量使其可供ant使用。 或者将此行放入ANT_HOME/bin/ANT.sh:
ANT_ARGS="-lib /usr/local/ant_xtralibs:/usr/local/ant_testlibs"
export ANT_ARGS
或者按照所述创建自己的startscript。ANT任务似乎有一组复杂的脚本。我建议添加以管理这些 例子 编译文件
平台:Ubuntu 16.04 LTS 首先,要使该语句有效,您需要使用Axis 1(下载:),而不是Axis 2。
然后按照说明指定要使用的类路径。
在此之前,必须从二进制安装根目录(即
/opt/local/axis-1_4/
)在build.xml
中手动设置axis.home
属性,或者从环境变量axis_home
中读取,指向同一目录,如下所示:
或在build.properties
文件中设置。您的
*.jar
子目录路径可能不同于${axis.home}/build/lib
,在我的例子中,它是${axis.home}/lib
,我已经编辑了问题,并添加了以粗体字母表示的附加信息和详细信息。请检查并推荐可能的解决方案。我们对创建用户帐户做了一些细微的更改。之后一切都停止工作。以前它工作得很好。我编辑了这个问题,并用粗体字母添加了附加信息和细节。请检查并推荐可能的解决方案。我们对创建用户帐户做了一些细微的更改。之后一切都停止工作。以前它工作得很好。你有没有试过使用我建议的解决方案?这是在运行时管理ANT类路径的问题。Ivy是您的最终解决方案,因为它使您的构建独立并且不受不同用户环境的影响。仔细检查我的例子。如果缺少,它甚至会自动安装ivy:-)如果您不使用ivy之类的工具(管理运行时类路径依赖关系),那么您将需要一些替代机制来确保您的构建具有它所需的所有第三方JAR。现在,如果您的代码作为一个用户正常运行,则表明另一个用户缺少JAR。检查根主帐户。最有可能丢失的jar位于“$HOME/.ant/lib”下。总之,常春藤听起来很可怕,但它非常值得努力。
/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
ANT_ARGS="-lib /usr/local/ant_xtralibs:/usr/local/ant_testlibs"
export ANT_ARGS
├── build.xml
├── src
│ └── myservice.wsdl
└── target
└── output
└── com
└── examples
└── www
└── wsdl
└── HelloService_wsdl
├── Hello_BindingStub.java
├── Hello_PortType.java
├── Hello_Service.java
└── Hello_ServiceLocator.java
<project name="demo" default="axis" xmlns:ivy="antlib:org.apache.ivy.ant">
<!--
================
Build properties
================
-->
<property name="build.dir" location="target"/>
<property name="axis.output" location="${build.dir}/output"/>
<available classname="org.apache.ivy.Main" property="ivy.installed"/>
<!--
===========
Targets
===========
-->
<target name="install-ivy" description="Install ivy" unless="ivy.installed">
<mkdir dir="${user.home}/.ant/lib"/>
<get dest="${user.home}/.ant/lib/ivy.jar" src="http://search.maven.org/remotecontent?filepath=org/apache/ivy/ivy/2.3.0/ivy-2.3.0.jar"/>
<fail message="Ivy has been installed. Run the build again"/>
</target>
<target name="resolve" depends="install-ivy" description="Use ivy to resolve classpaths">
<ivy:cachepath pathid="build.path">
<dependency org="org.apache.axis" name="axis-ant" rev="1.4" />
<dependency org="org.apache.axis" name="axis" rev="1.4" />
<dependency org="org.apache.axis" name="axis-jaxrpc" rev="1.4"/>
<dependency org="commons-logging" name="commons-logging" rev="1.1.1" />
<dependency org="commons-discovery" name="commons-discovery" rev="0.4" />
<dependency org="wsdl4j" name="wsdl4j" rev="1.6.2" />
</ivy:cachepath>
</target>
<target name="axis" depends="resolve" description="Run Axis task">
<taskdef resource="axis-tasks.properties" classpathref="build.path"/>
<mkdir dir="${axis.output}"/>
<axis-wsdl2java url="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>
<target name="clean" description="Clean workspace">
<delete dir="${build.dir}"/>
</target>
<target name="clean-all" depends="clean" description="Purge ivy cache">
<ivy:cleancache/>
</target>
</project>