5

ANT を使用して.jarファイルを作成しています。これが私のものbuild.xmlです:

<?xml version="1.0"?>
<project name="stack_overflow" default="info">
    <target name="info">
        <jar destfile="util.jar" includes="com/appl/constants">
            <manifest>
                <attribute name="Main-Class" 
                           value="com.appl.constants.Applicationinfo.class"/>
             </manifest>
        </jar>
    </target>
</project>

を実行するant jarと、util.jarファイルが生成されますが、そこには manifest.mf しかありません。

これは私が得るエラーです:

Buildfile: C:\Users\Srikrishna\workspace\SpringExample5\build\build.xml
info:
      [jar] Building MANIFEST-only jar: C:\Users\Srikrishna\workspace\
            SpringExample5\build\${web.dir}\lib\util.jar

BUILD FAILED
C:\Users\Srikrishna\workspace\SpringExample5\build\build.xml:5: 
Could not create almost empty JAR archive (
C:\Users\Srikrishna\workspace\SpringExample5\build\${web.dir}\lib\util.jar 
(The system cannot find the path specified))

Total time: 200 milliseconds

私のフォルダ構造は次のとおりです。

src
 |
com.appl.constants
   |
 Applicationinfo.class

jar に何も入れられないのはなぜですか?

4

1 に答える 1

2

jar タスクに属性を指定するbasedirか、ネストされた <fileset>を使用して、クラスを探す場所を jar タスクに伝える必要があります。

ビルド ファイルの例を次に示します。jar ターゲットには、「build/classes」への basedir 参照があることに注意してください。

<project>
    <target name="clean">
        <delete dir="build"/>
    </target>

    <target name="compile">
        <mkdir dir="build/classes"/>
        <javac srcdir="src" destdir="build/classes"/>
    </target>

    <target name="jar">
        <mkdir dir="build/jar"/>
        <jar destfile="build/jar/CalculateStats.jar" basedir="build/classes">
            <manifest>
                <attribute name="Main-Class" value="mypackage.CalculateStats"/>
            </manifest>
        </jar>
    </target>

    <target name="run">
        <java jar="build/jar/CalculateStats.jar" fork="true"/>
    </target>

</project>
于 2013-08-25T18:28:00.133 に答える