我正在尝试在实际调用目标之前将更多自定义jar添加到ant的类路径中,但它没有采用我的自定义jar,因此我从ant的taskdef类找不到className时出错。有没有办法解决这个问题?
main.ksh
#/bin/ksh
.
.
ANT_CLASSPATH=$JDK_HOME/jre/lib/rt.jar
ANT_CLASSPATH=$ANT_CLASSPATH:$ANTBUILD_HOME/lib/ant-$ANT_VERSION.jar
.
.
echo $ANT_CLASSPATH
export ANT_CLASSPATH
.
.
# java call with framed ANT_CLASSPATH to ant target which is part of main build.xml ### This call, I don't want to run without my custom jar in ANT_CLASSPATH ###
我的新 ksh 文件如下所示,我正在向ANT_CLASSPATH添加新的自定义 jar
sub.ksh
#/bin/ksh
# Adding some more to jars to ANT_CLASSPATH
export ANT_CLASSPATH=../lib/custom/custom-3.0.jar
main.ksh new-build.xml $*
ANT 类路径最好在构建文件中进行管理:
<path id="runtime.path">
<pathelement location="lib/custom/custom-3.0.jar"/>
..
..
</path>
<path id="build.path">
<pathelement location="lib/custom-anttask-3.0.jar"/>
..
..
</path>
<!-- Use the paths using 'classpathref' attributes on tasks -->
<java .... classpathref="runtime.path"/>
<taskdef .... classpathref="build.path"/>
由于最初的想法是不要接触main.ksh脚本,所以没有仔细观察它。我的坏,如果它必须使用导出的值形式 sub.ksh,则必须更正。
我只需要在第一行附加导出的值:
ANT_CLASSPATH=$ANT_CLASSPATH:$JDK_HOME/jre/lib/rt.jar