【发布时间】:2014-02-13 10:31:39
【问题描述】:
我遇到了一些似乎与 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->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>
【问题讨论】:
-
你能发布你的编译目标吗?
-
当然 - 我在问题末尾添加了它
-
目标清理,编译:删除目录“dist.dir”,然后编译“dist.dir”中的所有文件...
-
不太清楚你的意思
-
您的干净目标会删除源文件。您的编译目标尝试编译已删除的文件,因此不会生成任何类文件。