在运行目标之前,将自定义jar添加到ant的类路径中

时间:2013-10-09 05:43:53

标签: ant classpath

我试图在实际调用目标之前向ant的类路径添加更多自定义jar,但它没有采用我的自定义jar和amp;因此我从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 $*

2 个答案:

答案 0 :(得分:8)

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"/>

答案 1 :(得分:1)

最初的想法是不要触及main.ksh脚本,没有仔细看过它。如果必须使用sub.ksh的导出值,我的错误必须得到纠正。

我只需在第一行追加导出值:

ANT_CLASSPATH = $ ANT_CLASSPATH:$ JDK_HOME / JRE / LIB / rt.jar中