[英]Simple Java Ant build problem
对Ant来说是全新的,我只有一个简单的问题。 我运行蚂蚁与一个输入文件: ant -Dargs="input.txt" run
,但它说,它无法找到input.txt
(没有这样的文件或目录)。 我在src
和bin
上方的同一目录中有build.xml
文件和input.txt
。 这是我的build.xml
文件,我缺少什么吗?
<project name="Project" default="compile" basedir=".">
<description>
A build file for a project
</description>
<!-- global properties for this build file -->
<property name="source.dir" location="src"/>
<property name="build.dir" location="bin"/>
<property name="doc.dir" location="doc"/>
<property name="main.class" value="proj.ProjMain"/>
<!-- set up some directories used by this project -->
<target name="init" description="setup project directories">
<mkdir dir="${build.dir}"/>
<mkdir dir="${doc.dir}"/>
</target>
<!-- Compile the java code in ${src.dir} into ${build.dir} -->
<target name="compile" depends="init" description="compile java sources">
<javac srcdir="${source.dir}" destdir="${build.dir}"/>
</target>
<!-- execute the program with the fully qualified name in ${build.dir} -->
<target name="run" description="run the project">
<java dir="${build.dir}" classname="${main.class}" fork="yes">
<arg line="${args}"/>
</java>
</target>
<!-- Delete the build & doc directories and Emacs backup (*~) files -->
<target name="clean" description="tidy up the workspace">
<delete dir="${build.dir}"/>
<delete dir="${doc.dir}"/>
<delete>
<fileset defaultexcludes="no" dir="${source.dir}" includes="**/*~"/>
</delete>
</target>
<!-- Generate javadocs for current project into ${doc.dir} -->
<target name="doc" depends="init" description="generate documentation">
<javadoc sourcepath="${source.dir}" destdir="${doc.dir}"/>
</target>
</project>
ant -Dargs="input.txt" run
命令ant -Dargs="input.txt" run
将运行以下目标:
<!-- execute the program with the fully qualified name in ${build.dir} -->
<target name="run" description="run the project">
<java dir="${build.dir}" classname="${main.class}" fork="yes">
<arg line="${args}"/>
</java>
</target>
如注释中所述,此目标从 ${build.dir}
目录(这里为bin
)执行Java程序,并将命令行参数传递给它。 因此,如果input.txt
在bin
上方,则应运行:
$ ant -Dargs="../input.txt" run
当未指定绝对路径时, 项目标记中的basedir
参数指示从中获取构建文件引用的目录。 因此,您的input.txt
应该相对于您的basedir
或者您应该提及您的input.txt
的绝对路径。
在您的情况下,basedir指的是您的构建文件所在的目录。 因此,如果input.txt与构建文件位于同一目录中,则应该可以正常工作
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.