Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/ant/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
linux中的Ant构建_Linux_Ant - Fatal编程技术网

linux中的Ant构建

linux中的Ant构建,linux,ant,Linux,Ant,我试图在linux中运行一个ant构建,结果很奇怪。如果不指定类路径上的每个库,我似乎无法运行任何东西,因此我系统地将“lib”和“ant/dep/lib”位置中的每个jar显式地添加到类路径中 它运行时没有任何问题(这是一个安装批处理,因此在脚本的第一阶段,它使用了许多“输入”任务),然后我收到一条消息,即org.apache.tools.ant.taskdefs.optional.PropertyFile未找到。环顾四周,我发现它位于ant-nodeps.jar中,我已经将它添加到类路径中,

我试图在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
任何帮助都将不胜感激,即使只是建议尝试什么


编辑:根据OER的观察,我意识到毕竟有ant的shell脚本(遗憾的是,我不是linux专家),所以我将尝试使用它来启动ant,而不是尝试自己做同样的事情。我会让每个人知道我的进度和/或我是否能够通过这种方式修复它。

我查看了我机器上的shell脚本。 还有一个附加参数集:

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

使用ant脚本启动安装程序似乎可以做到这一点,将参数-lib指定为lib,将-buildfile指定为install/install.xml。

为什么要编写自己的ant脚本?ant/bin中有一个可执行文件,它基本上也是这样做的(向类路径添加平均值,但对每个jar文件使用迭代),它使用.bat文件和perl脚本,尽管我很想在这台机器上安装perl,但这个设置必须始终有效,这意味着在运行安装程序之前,我必须自动化一些perl安装,而我不希望为了能够运行ant而这样做。你能澄清一下吗?很抱歉如果您有自己的build skcript for ant或仅使用java调用ant…,则需要将参数
-Dant.library.dir=PATH_to_ant_LIB_dir
添加到调用命令中,否则ants_LIB dir不在类路径中,基本上解决方案是使用ant本身提供的shell脚本启动ant@ziggy你得到答复了吗?忘了@部分