我认为这个问题是对与Java IDE相比,我们是否仍需要Ant的扩展。
以上问题有答案,但我希望知道使用Maven或Ant的具体示例,而不是只用Eclipse。
当我在Eclipse中开发时,Eclipse会为我完成一切工作,我只需点击运行按钮。此外,Eclipse可以让您将代码导出为可运行的jar文件,甚至是Windows的.exe文件。
因此,我真的不知道为什么需要Maven或Ant。
如果我确实需要,我应该选择Maven还是Ant?
我认为这个问题是对与Java IDE相比,我们是否仍需要Ant的扩展。
以上问题有答案,但我希望知道使用Maven或Ant的具体示例,而不是只用Eclipse。
当我在Eclipse中开发时,Eclipse会为我完成一切工作,我只需点击运行按钮。此外,Eclipse可以让您将代码导出为可运行的jar文件,甚至是Windows的.exe文件。
因此,我真的不知道为什么需要Maven或Ant。
如果我确实需要,我应该选择Maven还是Ant?
Eclipse是一个开发环境,但并不是一个构建工具。
我个人讨厌Maven,但你的看法可能不同。还有其他很多替代品:gradle、buildr等等。
这实际上是不使用Maven的一个很好的理由。
运行服务器构建?很好的想法,现在,应该由已经检入源代码库的代码来启动它,而不是随机推送到Nexus的构建。这引出了一个反对Git的观点,尤其是与Maven一起使用的Git。因为在Git中,我不会在分支上工作、本地测试、然后提交(部分原因是我的本地测试并不能证明服务器构建可行,因为Jenkins和Eclipse中的Maven配置存在差异),我必须将我的更改提交到另一个分支,以便看到服务器Maven构建失败,然后提交进一步的更改来解决问题,从而导致无法阅读的源历史记录在仓库中。检入的代码应该至少构建并通过单元测试,如果Git和Maven不在考虑范围内,这应该是可以保证的。
如果你真的去研究,从Eclipse导出一个headless build是微不足道的 - 你所需要的只是Ant或Gradle,它们是Eclipse开发者构建已经维护好的,还有一些Eclipse jar文件(Eclipse将所有必要的文件导出到目录或zip文件中,或者将它们通过ftp发送到构建服务器)。服务器构建工具像Hudson/Jenkins可以从大多数源代码库中拉取更新的代码,并调用任何构建脚本,没有依赖于Maven。使用Maven,你要么强制开发人员使用除了构建工程师以外任何人都不适合的工具(即使使用M2E,所需时间更长就足以证明这种情况),要么接受服务器构建不像工作站构建那样完美的可能性,即使你通过大量的M2E插件将二者集成起来,这仍然是一个事实。无论哪种方式,你都会得到一个更慢、更容易出错的工作站构建,而为此付出同样缓慢且更脆弱的服务器构建。在我所参与的每个基于Maven的项目中,我都看到了瞬态的Hudson/Jenkins错误,除非你安装并正确配置了绝对所有可能的M2E插件,否则这些错误在Eclipse中是看不到的,而大多数开发人员从未这么做。
似乎是避免Maven的另一个很好的理由。
那并不能解决Maven的一些根本性问题,例如其名称空间破坏Java名称空间和XML名称空间,构建单元(POM)与实际部署环境没有任何关系(想想看,当你通过POM进行分离时,你实际上完成了什么?什么也没完成。它只是实现了一种错误的感觉,即你已经将关注点和功能分别放入了不同的构建单元中,而所有这些构建单元都作为一个单一的代码整体运行);手动维护复杂配置文件的麻烦程度,如果您需要使用OSGi或另一个容器并需要维护其他配置文件,则情况会变得更糟,这些配置文件会受到Maven配置的影响且会影响Maven配置,但显然没有太多明显的意义;尝试在没有完整执行代码所需环境的情况下运行单元测试所引起的问题;以及不仅依赖关系的各种版本,还有特定于Maven的插件的各种版本(我实际上在Maven构建本身中看到过JAR地狱,其中多个Maven插件正在使用冲突的依赖项 - 这是Maven应该解决的问题之一)。蚂蚁我找不到一个真正有益的答案,但我相信这会说服你 ;)
Maven和Ant用于编写脚本构建,以便可以像在Jenkins中或在命令行上一样批量执行。
实际上,Eclipse本身广泛使用Ant来构建插件。
如果你要学习其中之一,那就学Maven吧,这是现在几乎每个人都在使用的(取代了Ant)。
Maven通常用于构建特定应用程序的插件或JAR包。
假设您已经开发了一个应用程序,但不想手动添加该应用程序所需的JAR文件。在这种情况下,Maven或Ant非常有帮助。一旦您编写好代码,只需转到“Run As -> Maven Build”(单击Maven Build),它将生成所有必需的插件或JAR文件,并包含在您的应用程序库构建路径中。可能会产生疑问,应用程序如何获取这些JAR文件?对于每个应用程序,都有一个名为POM.xml的xml文件,其中保留了所有JAR文件的引用以供下载。