将自定义jar添加到ant';在运行一个目标之前,设置一个类路径

将自定义jar添加到ant';在运行一个目标之前,设置一个类路径,ant,classpath,Ant,Classpath,我试图在ant实际调用目标之前向其类路径添加更多自定义jar,但它并没有接受我的自定义jar&因此我从ant的taskdef类中得到错误,无法找到类名。有办法处理吗 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 A

我试图在ant实际调用目标之前向其类路径添加更多自定义jar,但它并没有接受我的自定义jar&因此我从ant的taskdef类中得到错误,无法找到类名。有办法处理吗

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_类路径

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

由于最初的想法是不接触main.ksh脚本,所以我们没有仔细查看它。如果必须使用sub.ksh表中的导出值,则必须纠正我的错误

我只需将导出的值附加到第一行:


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

最好在构建文件中管理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"/>

..
..
..
..

我同意。但我在运行另一个xml文件的一部分的目标时发现了问题&file将taskdef添加到未添加到ant类路径的类中。@user1587504您没有抓住要点。不要使用环境变量管理类路径。这是不灵活和难以实现的。而是在ANT构建中创建路径,并将其用于java和taskdef任务。请参阅更新。