【发布时间】:2023-08-18 08:36:02
【问题描述】:
我正在运行的 java 程序有 2 个必需的命令行参数和一个可选的第三个参数。这是我目前的 build.xml:
<project name="HashTest" basedir="." default="main">
<property name="src.dir" value="src"/>
<property name="build.dir" value="build"/>
<property name="classes.dir" value="${build.dir}/classes"/>
<property name="jar.dir" value="${build.dir}/jar"/>
<property name="HashTest" value="com.HashTest.HashTest"/>
<target name="clean">
<delete dir="${build.dir}"/>
</target>
<target name="compile">
<mkdir dir="${classes.dir}"/>
<javac srcdir="${src.dir}" destdir="${classes.dir}"/>
</target>
<target name="jar" depends="compile">
<mkdir dir="${jar.dir}"/>
<jar destfile="${jar.dir}/HashTest.jar" basedir="${classes.dir}">
<manifest>
<attribute name="Main-Class" value="${HashTest}"/>
</manifest>
</jar>
</target>
<target name="run" depends="jar">
<java jar="${jar.dir}/HashTest.jar" fork="true">
<arg value="${data}"/>
<arg value="${loadfactor}"/>
<arg value="${debug}"/>
</java>
</target>
<target name="clean-build" depends="clean,jar"/>
<target name="main" depends="clean,run"/>
</project>
这会强制用户输入 3 个参数。我尝试添加另一个只定义了 2 个参数的运行目标,但 ant 不喜欢它。我知道我可以创建两个单独命名的运行目标,一个具有 2 个 args,另一个具有 3 个参数,但为了简单起见,我想尽可能避免这种情况。
我希望用户只需输入:
ant -Ddata=<num> -DloadFactor=<num> -Ddebug=<num>
或:
ant -Ddata=<num> -DloadFactor=<num>
【问题讨论】: