Ant仍然是Java构建工具的最佳选择吗?
根据我的少量经验,我只将Ant用作构建工具。还有其他更好的项目吗?为什么? 它比ant好得多,因为对于大多数常见的任务,您不必编写复杂的build.xml,maven有非常好的默认值,并且它完全是基于配置的约定 它还有一个大型的中央库,可以很容易地将其配置为“使用最新的稳定的公共资源”。Maven随后将为您下载最新的稳定版本(不再将JAR签入VCS),如果发布了新的上游稳定版本,它也将下载它。当然,如果您需要的话,也可以很容易地将其锁定到某个特定的版本 它还与Netbeans和Eclipse(m2eclipse插件)进行了很好的集成,因此IDE尊重您在pom.xml文件中声明的任何设置(包括依赖项) maven也有一些缺点:一些插件的文档记录很差,与这两个IDE的集成不是很完美,而且在不同的方面,一些错误消息可能很难理解。有些人喜欢,这是Ant的依赖管理功能,所以我想来自Ant背景的人会喜欢它 其他人喜欢。这是一个JRuby的东西,所以如果你能在同一个项目中处理Ruby和Java,那么我想这会很有趣Ant仍然是Java构建工具的最佳选择吗?,java,ant,build,build-management,Java,Ant,Build,Build Management,根据我的少量经验,我只将Ant用作构建工具。还有其他更好的项目吗?为什么? 它比ant好得多,因为对于大多数常见的任务,您不必编写复杂的build.xml,maven有非常好的默认值,并且它完全是基于配置的约定 它还有一个大型的中央库,可以很容易地将其配置为“使用最新的稳定的公共资源”。Maven随后将为您下载最新的稳定版本(不再将JAR签入VCS),如果发布了新的上游稳定版本,它也将下载它。当然,如果您需要的话,也可以很容易地将其锁定到某个特定的版本 它还与Netbeans和Eclipse(m
就我个人而言,我只是使用。创建一个默认的pom.xml文件并使用所有构建命令是很容易的。随着项目的发展,您已经具备了运行插件和添加依赖项的基础设施。在考虑合适的工具时,我敦促您从需求开始。每个项目都是不同的,你使用的工具应该反映问题空间而不是时尚 尽管如此,我认为对于一般用途,ant可能仍然是构建java应用程序的最佳通用工具。它通常与其他依赖关系管理工具一起有效地使用,但在这里,我们又可以顺利地找到解决方案 非常好的消息是,如果您的流程很好,那么切换构建工具是一个相当轻松的流程-第一课-从一个适合当前问题的好流程开始。我非常喜欢,这是一个构建工具,其配置文件都只是Python脚本。这将吸引任何了解Python或类似脚本语言的人。SCons的设计可以很好地与Java、C/C++和其他语言配合使用,过去我对它非常满意
因为SCons文件是用Python编写的,所以如果您发现自己需要做任何特殊的事情,您可以编写任意Python代码。然而,如果您对Python完全不熟悉,那么可能会有比尝试扩展Ant或类似的东西来做您想做的事情更高的学习曲线。Maven2似乎是一种新兴事物 然而,对于我们的项目,只要可行,我们都将迁移回ant Maven2需要相当多的知识才能以您想要的方式获得它,Maven2版本似乎以不同的方式处理类路径 检查依赖项的依赖项中包含的所有许可证是一件痛苦的事情,这些依赖项可能会被引入 而且可能会有一个较慢的启动时间,因为您需要自己找出依赖关系,但至少它很容易阅读。这里没有魔法:) 如果您确实使用maven,请考虑使用Nexus这样的内部存储库。这样,如果一些库决定离开网络,您的软件就不会死*
*我们被maven1烧伤了;ibiblio maven1存储库重定向,而maven1不支持重定向:(您将在中找到一些答案。Ant仍然是一个主要的参与者。根据我的经验,它占主导地位。另外,有了Ivy,它处理了Maven的一些优势。在我看来,Ant将成为其他工具的框架:XML太僵化了(请参见下面的链接) Maven 2也是一个重要的玩家。我知道有些人非常喜欢它,并且对Maven 1的批评感到愤怒(这已经走了很长的路) Groovy在构建空间中提供了一些很酷的东西,因为它们是在Ant上构建的。Grails中使用了Gant,但也可以包含在Gradle中。Java也可以使用Gant
冒着给我自己的博客“关于甘特和格雷德尔”拉皮条的风险。这里有一个关于他们未来的链接。在企业中,ant仍然是牢不可破的角色。依赖关系不会很快改变。与不断转向最新版本的依赖JAR的开源项目不同,大多数企业都尽量不改变它们的依赖关系t、 有鉴于此,maven的优势与ant相比并不算多 同样,如果您想要maven的一些特性,ant人员会使用ivy()作为依赖项特性 如果您想继续使用ant,请掌握第二版“ant IN ACTION”,这样您就可以使用ant达到最佳效率
祝你好运,你也有。Gant是Groovy+Ant,你可以用普通的Groovy编写你的任务,你也可以调用任何Ant任务。如果你是一家Java商店,想重用你拥有的Ant技能,但不喜欢XML,我推荐Gant,它非常容易安装,你可以将它嵌入到Ant中(也可以从Ant中调用Gant).Buildr的另一个发展方向是基于Groovy的gant。它包括Ivy。我认为像Rake、Buildr和gant这样的构建工具是未来的发展方向,因为XML从来都不是一种很好的语言基础(尽管它适用于分层数据结构,在这种结构中,您希望简化解析器的编写).你认为maven更像是一个项目定义,从而创建了build vs.ant,这让你自己做的工作处于一个较低的水平吗?有点像C vs.assembly language,但不那么极端?可以这样认为,是的。但对我来说重要的是,maven与IDE插件一起,是一个更好的构建工具,这就是那,如果是的话