0

簡単なantの例を作成/コピーし、それを使用してJavaプログラムをデプロイしようとしています。私のビルドファイルbsp0201.xml

<?xml version="1.0" encoding="UTF-8" ?>
<project name="bsp0201" default="main" basedir=".">
    <property name="dir.src" value="./source" />
    <property name="dir.build" value="./classes" />
    <property name="dir.lib" value="./lib" />
    <path id="cp">
        <pathelement path="${classpath}" />
        <pathelement location="${dir.build}" />
    </path>
    <target name="main" depends="prepare, compile, run" />
    <target name="prepare">
        <mkdir dir="${dir.build}" />
        <delete>
            <fileset dir="${dir.build}" includes="**/*" />
        </delete>
    </target>
    <target name="compile">
        <javac classpathref="cp" destdir="${dir.build}" srcdir="${dir.src}" includes="**/*.java" includeantruntime="false" />
        <mkdir dir="${dir.lib}" />
        <jar destfile="${dir.lib}/ae.jar">
            <fileset dir="${dir.build}" includes="**/*.class" />
        </jar>
    </target>
    <target name="run" if="test">
        <java classname="main.GeoAnalyzerMain" classpath="${dir.lib}/ae.jar">
            <arg line="${test}" />
        </java>
    </target>
</project>

私のアリコマンドと結果出力:

# ant -f bsp0201.xml run -Dtest=Echo
Buildfile: /var/www/sandbox/ant/bsp0201/bsp0201.xml

run:

BUILD SUCCESSFUL
Total time: 1 second

Antは、フォルダ、クラスファイル、およびJARファイルを生成しますae.jar。しかし、このJARファイルのサイズは19.1 KB(Eclipseで生成した場合のJARファイルの297 KBではなく)であり、実行できません。私は何を間違えますか?

どうも

4

2 に答える 2

0

はい、JARを比較することをお勧めします。:)ここで比較結果を見ることができます:

JARの比較

フォルダ/imgと/.classpathがAnt-JARにありません。Antに含まれていないのはなぜですか?不足しているファイル/フォルダをAntに含めるにはどうすればよいですか?

于 2013-02-09T12:13:40.770 に答える
0

ビルドXMLを編集しました:

<?xml version="1.0" encoding="UTF-8" ?>
<project name="bsp0201" default="main" basedir=".">
    <property name="dir.src" value="./source" />
    <property name="dir.build" value="./classes" />
    <property name="dir.lib" value="./lib" />
    <path id="cp">
        <pathelement path="${classpath}" />
        <pathelement location="${dir.build}" />
    </path>
    <target name="main" depends="prepare, compile, run" />
    <target name="prepare">
        <mkdir dir="${dir.build}" />
        <delete>
            <fileset dir="${dir.build}" includes="**/*" />
        </delete>
    </target>
    <target name="compile">
        <javac classpathref="cp" destdir="${dir.build}" srcdir="${dir.src}" includes="**/*.java" includeantruntime="false" />
        <mkdir dir="${dir.lib}" />
        <jar destfile="${dir.lib}/AntExample.jar">
            <fileset dir="${dir.build}" includes="**/*.class" />
            <fileset dir=".">
                <include name="img/*.*" />
            </fileset>
        </jar>
    </target>
    <target name="run" if="test">
        <java classname="main.GeoAnalyzerMain" classpath="${dir.lib}/AntExample.jar">
            <arg line="${test}" />
        </java>
    </target>
</project>

これで、画像フォルダが結果アーカイブにコピーされます。ただし、JARはまだ実行できません。

編集:

できます!

<?xml version="1.0" encoding="UTF-8" ?>
<project name="bsp0201" default="main" basedir=".">
    <property name="dir.src" value="./source" />
    <property name="dir.build" value="./classes" />
    <property name="dir.lib" value="./lib" />
    <path id="cp">
        <pathelement path="${classpath}" />
        <pathelement location="${dir.build}" />
    </path>
    <target name="main" depends="prepare, compile, run" />
    <target name="prepare">
        <mkdir dir="${dir.build}" />
        <delete>
            <fileset dir="${dir.build}" includes="**/*" />
        </delete>
    </target>
    <target name="compile">
        <javac classpathref="cp" destdir="${dir.build}" srcdir="${dir.src}" includes="**/*.java" includeantruntime="false" />
        <mkdir dir="${dir.lib}" />
        <jar destfile="${dir.lib}/AntExample.jar">
            <fileset dir="${dir.build}" includes="**/*.class" />
            <fileset dir=".">
                <include name="img/*.*" />
            </fileset>
            <manifest>
                <attribute name="Main-Class" value="main.GeoAnalyzerMain" />
            </manifest>
        </jar>
    </target>
    <target name="run" if="test">
        <java classname="main.GeoAnalyzerMain" classpath="${dir.lib}/AntExample.jar">
            <arg line="${test}" />
        </java>
    </target>
</project>
于 2013-02-11T09:40:31.667 に答える