0

次のディレクトリ構造があります

src/com
src/META-INF/MANIFEST.MF
src/META-INF/spring
src/META-INF/spring/context.xml

スクリプトを実行すると、menifest ファイルが上書きされます。カスタム エントリを追加する必要があり、生成された .jar ファイルに追加する必要があるため、それは望ましくありません。他のすべてのファイルがコピーされますが、これは上書きされます。

私のbuild.xmlは次のとおりです

<project name="TaskNodeBundle" default="all" basedir=".">
    <!-- Sets variables which can later be used. -->
    <!-- The value of a property is accessed via ${} -->
    <property name="bundlename" value="tasknodebundle" />
    <property name="src.dir" location="../src" />
    <property name="lib.dir" location="../lib" />
    <property name="build.dir" location="/buildoutput" />
    <property name="build.dest" location="../build/dest" />


    <!--
    Create a classpath container which can be later used in the ant task
  -->
    <path id="classpath">
        <fileset dir="${lib.dir}/">
            <include name="*.jar" />

        </fileset>
    </path>

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


    <!-- Deletes the existing build directory-->
    <target name="mkdir" depends="clean">
            <mkdir dir="${build.dest}"/>
    </target>


<!-- Compiles the java code -->
    <target name="compile" depends="mkdir">
        <javac srcdir="${src.dir}" destdir="${build.dest}" classpathref="classpath" />
    </target>

    <target name="package-bundle" depends="compile" description="Generates the bundle">
        <jar destfile="${build.dest}/${bundlename}.jar">
            <fileset dir="${src.dir}">
                <include name="**/**.class" />
                <include name="**/**.properties"/>
                <include name="/META-INF/**.*" />
                <include name="/META-INF/spring/**.*" />
            </fileset>

        </jar>
    </target>


    <target name="all" depends="package-bundle">
    </target>

</project>
4

1 に答える 1

3

http://ant.apache.org/manual/Tasks/jar.htmlを参照してください。

を省略した場合manifest、単純なものがApacheAntによって提供されます。

manifest属性を追加するか、zipタスクを使用するだけです。

また、antパスマスクが正しく使用されていません。http://en.wikibooks.org/wiki/Apache_Ant/Filesetを参照してください。

修正されたバージョン:

    <zip destfile="${build.dest}/${bundlename}.jar">
        <fileset dir="${src.dir}">
            <include name="META-INF/**" />
            <include name="**/*.class" />
            <include name="**/*.properties"/>
        </fileset>
    </zip>
于 2012-08-31T05:41:11.903 に答える