根据我之前关于programmers.SE 的问题的建议,我将当前项目拆分为三个子目录(swing、common 和android),并在每个子目录中创建了单独的Ant 脚本。现在,我轻松地在 swing 和 common 中创建了 NetBeans 项目,并且能够设置适当的依赖项来编译 Swing 应用程序。然后,当我使用“common”项目中的类时,我意识到我需要另一个用于 Android 构建过程的 Ant 脚本。
所以现在我有四个 Ant 脚本用于构建项目的不同部分,以及每个项目的单独 src、test 和其他支持目录。我遇到的第一个问题是,NetBeans 和我的“android”项目的 ant 脚本都想在我的“common”项目中使用“build.xml”来执行各种构建任务,其中一些任务有名称冲突。我决定要将所有这些项目合并到一个包含 src、test 等子目录的目录中。源代码已经为每个项目组织到单独的包中,我认为这会使其更简单,因为我可以拥有一个单独的 Ant 构建脚本,其中包含用于 Swing 和 Android 构建的单独 traget。
现在我遇到的问题是,当我尝试构建“android”项目时,它也想构建所有 Swing 类。这会带来很多编译器错误。我什至修改了<javac>
任务,试图bbct.swing
从编译中排除包层次结构:
<javac encoding="${java.encoding}"
source="${java.source}" target="${java.target}"
debug="true" extdirs="" includeantruntime="false"
destdir="${out.classes.absolute.dir}"
bootclasspathref="project.target.class.path"
verbose="${verbose}"
classpathref="project.javac.classpath"
fork="${need.javac.fork}"
excludes="${source.dir}/bbct/swing/**"> <------- here
<src path="${source.absolute.dir}" />
<src path="${gen.absolute.dir}" />
<compilerarg line="${java.compilerargs}" />
</javac>
不过,Ant 仍然坚持编译我使用 Swing 的类。
所以我有两个问题:
组织这个项目的最佳方式是什么?您会建议我尝试过的两种方法中的一种还是完全其他的方法?
如果我坚持使用我最近的解决方案,我该如何
javac
忽略项目中基于 Swing 的源文件?