簡単に言うと、タグの引数がチェックする前にビルドディレクトリが作成されるようにするにはどうすればよいですか? 私はant 1.9.2を使用しています。jarfile
<manifestclasspath>
build
事前にディレクトリを作成しないと失敗する最小限の例を次に示します。
<path id="master-classpath">
<pathelement path="src"/>
<pathelement location="lib/dom4j-1.6.1.jar"/>
</path>
<manifestclasspath property="lib.list" jarfile="build/jar/HelloWorld.jar">
<classpath refid="master-classpath" />
</manifestclasspath>
<target name="clean">
<delete dir="build"/>
</target>
<target name="build">
<mkdir dir="build/classes"/>
<javac destdir="build/classes" includeantruntime="false" >
<src path="src"/>
<classpath refid="master-classpath"/>
</javac>
</target>
<target name="jar">
<mkdir dir="build/jar"/>
<jar destfile="build/jar/HelloWorld.jar" basedir="build/classes">
<manifest>
<attribute name="Main-Class" value="HelloWorld"/>
<attribute name="Class-Path" value="${lib.list}"/>
</manifest>
</jar>
</target>
<target name="run">
<java jar="build/jar/HelloWorld.jar" fork="true"/>
</target>
もちろん、jar ファイルのディレクトリはビルド ディレクトリです。また、ビルドする前に、ビルド ディレクトリが存在しません。ビルド ディレクトリの各サブディレクトリは、ディレクトリに対する適切な target--call によって作成され、ディレクトリがcompile
作成mkdir
さclasses
れjar
ますjar
。これはすべてかなり標準的だと思います。
<manifestclasspath>
タグは変数に読み込まれるため、タスクの前に読み込まれます。したがって、他のターゲットはまだ実行されていません。また、ディレクトリが見つからないため、ターゲットが実行されることはありません。ant を実行する前にディレクトリを手動で作成する必要がありますが、これはbuild/jar
非常にばかげています。
build
もちろん、事前にディレクトリを作成することは大したことではありません。しかし、人々が私のソフトウェアを自分でインストールしようとすると、少し難しくなります. とにかく、ビルドする前にビルドは存在しません! 私は何をしているはずですか?