我正在尝试在linux中运行一个ant构建,但我得到了奇怪的结果。如果不指定类路径上的每个库,我似乎无法运行任何东西,所以我系统地将"lib“和"ant/dep/lib”位置中的每个jar显式地添加到类路径中。
它运行了一下,没有任何问题(它是一个安装批处理,所以在脚本的第一阶段,它使用了很多“输入”任务),然后我收到消息说没有找到org.apache.tools.ant.taskdefs.optional.PropertyFile。环顾四周,我发现它位于ant-nodeps.jar中,并且我已将其添加到类路径中,但没有更改。
由于缺少库而导致的完全失败我可以理解,但是如果我确定我包含了每个库(包括ant-nodeps.jar),为什么构建会部分工作?
启动它的脚本文件如下所示:
#!/QOpenSys/usr/bin/bsh
ANT_HOME=dep/ant
PARAMS="-Dant.home=$ANT_HOME -Dsystem.type=as400 -Dis-as400=y"
LIBS="lib/ant-contrib-1.0b3.jar:lib/ant-launcher.jar:lib/ant.jar:lib/catalina-ant.jar:lib/catalina-deployer.jar:lib/commons-net-2.2.jar:lib/el-api.jar:lib/ganymed.jar:lib/jakarta-oro-2.0.8.jar:lib/jasper-el.jar:lib/jasper.jar:lib/jsp-api.jar:lib/log4j-1.2.16.jar:lib/mail.jar"
ANTLIBS="$ANT_HOME/lib/ant-antlr.jar:$ANT_HOME/lib/ant-jai.jar:$ANT_HOME/lib/ant-starteam.jar:$ANT_HOME/lib/ant-apache-bcel.jar:$ANT_HOME/lib/ant-javamail.jar:$ANT_HOME/lib/ant-stylebook.jar:$ANT_HOME/lib/ant-apache-bsf.jar:$ANT_HOME/lib/ant-jdepend.jar:$ANT_HOME/lib/ant-swing.jar:$ANT_HOME/lib/ant-apache-log4j.jar:$ANT_HOME/lib/ant-jmf.jar:$ANT_HOME/lib/ant-testutil.jar:$ANT_HOME/lib/ant-apache-oro.jar:$ANT_HOME/lib/ant-jsch.jar:$ANT_HOME/lib/ant-trax.jar:$ANT_HOME/lib/ant-apache-regexp.jar:$ANT_HOME/lib/ant-junit.jar:$ANT_HOME/lib/ant-weblogic.jar:$ANT_HOME/lib/ant-apache-resolver.jar:$ANT_HOME/lib/ant-launcher.jar:$ANT_HOME/lib/ant.jar:$ANT_HOME/lib/ant-commons-logging.jar:$ANT_HOME/lib/ant-netrexx.jar:$ANT_HOME/lib/xercesImpl.jar:$ANT_HOME/lib/ant-commons-net.jar:$ANT_HOME/lib/ant-nodeps.jar:$ANT_HOME/lib/xml-apis.jar"
java -classpath $LIBS:$ANTLIBS $PARAMS org.apache.tools.ant.launch.Launcher -buildfile install/install.xml任何帮助都将不胜感激,即使只是对尝试什么的建议。
编辑:根据oers的观察,我意识到毕竟有用于ant的shell脚本(可惜,我不是linux专家),所以我将尝试使用它来启动ant,而不是尝试自己做同样的事情。我会让每个人都知道我的进展和/或我是否能够通过这种方式修复它。
发布于 2011-04-01 16:21:26
我查看了我机器上的machine脚本。还有一个额外的参数集:
-Dant.library.dir=\"$ANT_LIB\" 也许这是必要的?
ant_exec_command="exec \"$JAVACMD\" $ANT_OPTS
-classpath \"$LOCALCLASSPATH\"
-Dant.home=\"$ANT_HOME\"
-Dant.library.dir=\"$ANT_LIB\" $ant_sys_opts
org.apache.tools.ant.launch.Launcher
$ANT_ARGS
-cp \"$CLASSPATH\"
$ant_exec_args" 发布于 2011-04-01 20:23:53
使用ant脚本启动安装程序似乎可以做到这一点,将参数-lib指定为lib,将-buildfile指定为install/install.xml。
https://stackoverflow.com/questions/5510567
复制相似问题