Ant 具有适当依赖处理的Java builder
在最近与我们的ant脚本玩了一番杂耍之后,我开始怀疑是否有更好的方法 我需要一个能够为我重新编译所有必需的.java文件的构建器 例如,对于这种结构Ant 具有适当依赖处理的Java builder,ant,build-process,dependencies,compilation,scons,Ant,Build Process,Dependencies,Compilation,Scons,在最近与我们的ant脚本玩了一番杂耍之后,我开始怀疑是否有更好的方法 我需要一个能够为我重新编译所有必需的.java文件的构建器 例如,对于这种结构 public class A { ] public class B extends A {} public class C { B b; } For:Compile('C')将知道如何编译A、B、C 对于:B更改,Compile('C')将知道只重新编译B 我知道有几种替代方案,它们看起来像是ant的扩展,ant是我们当前的java构建器
public class A { ]
public class B extends A {}
public class C {
B b;
}
Maxim.maven,对于我的个人和商业产品在您的问题中,您描述了类间依赖关系。大多数构建系统,尤其是Maven,更多地针对项目间的依赖关系。我相信大多数系统只是重新编译一个项目中的所有类,这些构建系统的大部分好处在于构建尽可能少的项目 Maven和Ivy都允许您轻松指定项目的外部和内部依赖关系,包括您所依赖的项目版本。如果外部库(如ApacheCommons)尚未在本地缓存,它们还将自动下载到本地计算机,作为构建过程的一部分,从而节省大量手动下载和组织第三方jar文件的工作
常春藤是蚂蚁的延伸,就像你提到的。我推荐Maven。这是一个面向约定的构建系统,我已经成功地使用了它,并且感觉它相当成熟。Maven在开始使用时所需的前期工作要少得多,而且具有很强的可扩展性。ivy、scons或Maven都不会帮助您解决上述问题
re:ivy vs maven:对于启动一个新项目,我同意maven需要更少的前期工作。对于现有的项目(比如这个项目),Ivy可以简单地“插入”,而Maven通常需要更多的初始努力来适应它的期望。这是要求遵守公约的福与祸。