Ant不包括生成的类文件到打包的jar,直到我在Eclipse中执行Project-> Clean

时间:2014-02-13 10:31:40

标签: java eclipse ant

我遇到了一些似乎与Eclipse连接的奇怪行为,它是刷新工作区的方法。

我正在使用Ant构建文件来创建我的类文件并从该类文件创建一个包。此功能正常。

这是完成工作的目标:

    <target name="package" depends="compile,javaDoc">
    <jar destfile="${dist.dir}/MyApplication.jar" basedir="${build.dir}" includes="**/*.class">
        <zipgroupfileset dir="${lib.dir}" includes="*.jar" />

        <manifest>
            <attribute name="Main-Class" value="MyApplication" />
        </manifest>
    </jar>
</target>

现在我想添加功能,首先清理生成类文件和jar文件的目录。

这是目标代码:

<target name="clean" description="Removes all *.class and *.jar files. Also deletes the java doc files.">
<delete dir="${build.dir}" />
<delete dir="${dist.dir}" /></target>

此目标也可以正常使用。

现在我希望软件包目标依赖于干净的目标,以便在打包之前首先清理文件夹。

这看起来像这样:

    <target name="package" depends="clean,compile,javaDoc">
    <jar destfile="${dist.dir}/MyApplication.jar" basedir="${build.dir}" includes="**/*.class">
        <zipgroupfileset dir="${lib.dir}" includes="*.jar" />

        <manifest>
            <attribute name="Main-Class" value="MyApplication" />
        </manifest>
    </jar>
</target>

问题是,该目标不包括生成的类文件到jar中。即使在文件系统上,也不会显示生成的类文件。在Eclipse中进入Project-&gt; Clean 之后只有清理项目后,类文件在文件系统上变得可见。

感谢任何帮助。

我的编译目标如下所示:

    <target name="compile" depends="init" description="Compiles the source file to the created directory.">
    <javac classpathref="classpath" srcdir="${dist.dir}" destdir="${build.dir}" includeantruntime="false" />
</target>

1 个答案:

答案 0 :(得分:0)

修复编译目标中的错误。 这是工作版本:

 <target name="compile" depends="init" description="Compiles the source file to the created directory.">
<javac classpathref="classpath" srcdir="${src.dir}" destdir="${build.dir}" includeantruntime="false" /></target>