7

カスタムマニフェストファイルも使用するAntを使用してjarを作成しています。build.xmlファイルは、すべてを適切にビルドします。ただし、jar内のマニフェストファイルを確認すると、プロパティがありません。Antによって作成されたデフォルトのMANIFEST.MFファイルに置き換えられているようです。私のビルドファイルは以下のとおりです。

<?xml version="1.0" ?>

<property name="src" location="src" />
<property name="build" location="build" />
<property name="dist" location="dist" />

<target name="clean">
    <delete dir="${build}" />
    <delete dir="${dist}" />
</target>

<target name="main" depends="compile, dist, build">
    <echo>
        Building the .jar file.
    </echo>
</target>

<target name="build">
    <mkdir dir="${build}" />
    <mkdir dir="${build}/META-INF" />
</target>

<target name="compile" depends="build">
    <javac srcdir="${src}" destdir="${build}"/>
</target>

<target name="dist" depends="compile">
    <mkdir dir="${dist}/lib" />
    <manifest file="${build}/META-INF/MANIFEST.MF">
        <attribute name="Class-Path" value="MyGame.jar" />
        <attribute name="Main-Class" value="game.Game"/>    
    </manifest>

    <jar jarfile="${dist}/lib/MyGame.jar" basedir="${build}" />

</target>

デフォルトのAntMANIFEST.MFファイルの代わりにカスタムマニフェストを指定するには、何を変更する必要がありますか?

4

1 に答える 1

9

jar antタスクには、使用する実際のファイルを指定できるマニフェスト属性があると思います。この場合、マニフェストタスクで作成したファイルを参照します

http://ant.apache.org/manual/Tasks/jar.html

<target name="dist" depends="compile">

    <mkdir dir="${dist}/lib" />

    <manifest file="${build}/META-INF/MANIFEST.MF">
        <attribute name="Class-Path" value="MyGame.jar" />
        <attribute name="Main-Class" value="game.Game"/>  
    </manifest>

    <jar manifest="${build}/META-INF/MANIFEST.MF" jarfile="${dist}/lib/MyGame.jar" basedir="${build}" />

</target>
于 2012-04-18T04:12:16.157 に答える