如何为Java文件构建编译图?

时间:2009-06-20 15:22:05

标签: java dependencies compilation

我在项目中有很多类,我想从脚本中编译所有类。问题是,类应按特定顺序编译,例如:我有一个名为 A 的类,它取决于名为 B 的类。假设类 B 取决于名为 C 的类。为了让我编译A类,我必须先编译B和C.

我是否可以使用一些工具来建立类的编译顺序,这样我就不必解析每个类并自行确定?我希望该工具可以保存一个文件,其中包含要编译的文件的顺序,以便我可以从我的脚本中解析它。

谢谢!

3 个答案:

答案 0 :(得分:6)

如果您同时编译所有这些(在同一javac调用中),则不需要执行您所描述的任何类型的操作。 javac足够智能,可以同时编译您提供给它的所有文件,因此对于无序编译没有任何问题。

答案 1 :(得分:2)

Java编译器(Javac)已经构建了需要编译的所有类文件的依赖关系列表。这里真正的依赖是 - 而不是单个java文件 在同一个包中 (这是自动照顾的由编译器。)

使用 Ant Maven 等工具指定和编译各种包中的所有文件,并生成最终版本。

如果您使用的是像NetBeans这样的IDE,它会自动为您执行此操作。或者,如果使用 JDepend

等工具

答案 2 :(得分:1)

这些DAG排序问题通常通过拓扑排序来解决。有关说明,请参阅Wikipedia。我不知道是否有一个你正在寻找的工具,但是自己实施它应该不会那么困难。