我正在尝试在linux中运行一个ant build,我得到了奇怪的结果。如果不指定类路径中的每个库,我似乎无法运行任何东西,所以我系统地将“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
任何帮助都会受到赞赏,即使只是建议尝试什么。
编辑:根据他们的观察,我意识到有一些关于ant的shell脚本(可惜,我不是linux的专家),所以我将尝试使用它来启动ant而不是尝试自己做同样的事情。我会让每个人都知道我的进步和/或我是否能够以这种方式解决它。答案 0 :(得分:2)
我查看了机器上的shellcript。 还有一个参数集:
-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"
答案 1 :(得分:0)
使用ant脚本启动安装程序似乎可以解决问题,将参数-lib指定为lib,将-buildfile指定为install / install.xml。