3

我正在尝试在实际调用目标之前将更多自定义 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 文件如下所示,我将新的自定义 jar 添加到 ANT_CLASSPATH

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 $*
4

2 回答 2

8

The ANT classpath is best managed within the build file:

<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"/>
于 2013-10-09T22:21:41.407 回答
1

由于最初的想法是不要接触 main.ksh 脚本,所以没有仔细看过它。如果它必须使用导出的值形式 sub.ksh,我的错它必须被纠正。

我只需要在第一行附加导出的值:

ANT_CLASSPATH=$ANT_CLASSPATH:$JDK_HOME/jre/lib/rt.jar

于 2013-10-09T05:56:10.930 回答