我已经使用Eclipse一段时间了(仅用于一般的Java开发),现在我正在尝试理解STS带来的附加功能,并且还学习Spring Boot开发。我看到当我创建一个Spring Boot项目时,它总是希望我选择Maven或Gradle作为构建工具,但我不确定为什么或者它做了什么。
当我在环境中工作时,我完全不了解Maven正在做什么。 Eclipse总是编译代码并通过调用编译器为我做其他事情,我从不需要像ant或Maven那样的外部构建工具。
如果我想在Eclipse环境之外构建应用程序或者STS是否依赖外部构建工具,那么它只是制作Maven配置吗?
答案 0 :(得分:1)
对于小型,#34; Hello world",项目简单的Eclipse编译/调试已经足够好了。
Maven是"更高级别"比" make / makefile" (经典的C / C ++构建工具)或" ant / build.xml"。具体做法是:
Why maven? What are the benefits?
- 的Henning:
快速项目设置,没有复杂的build.xml文件,只是一个POM并且去
项目中的所有开发人员都使用相同的jar依赖项 集中式POM。
获取项目的大量报告和指标 "免费"减少源分布的大小,因为罐子可以 从中央位置拉出来
- Emmanuel Venisse
很多目标都是可用的,所以开发一些目标是没有必要的 特定的构建过程部分与ANT相反,我们可以重用现有的ANT 使用antrun插件构建过程中的任务
- Jesse McConnell
促进代码的模块化设计。通过简化管理 多个项目
它允许将设计布局成多个 逻辑部分,通过使用将这些部分编织在一起 pom文件中的依赖关系跟踪。
强制执行代码的模块化设计。它 很容易支付lipservice到模块化代码,但代码是在 单独编制项目是不可能交叉授粉的 除非您特别允许,否则代码模块之间的引用 它在您的依赖管理中...没有'我现在就这样做 并在以后修复它#39;实现。
依赖管理显然 声明。使用依赖管理机制,你必须尝试 拧紧你的jar版本...没有经典的问题 '这个供应商罐子的版本是什么?'并将其设置为 现有项目如果存在,就会破坏现有的混乱局面 当你被迫做出“未知”时您的存储库中的版本 把事情搞定......或者说你自己知道你知道的事情 ABC.jar的实际版本。
强大的生命周期有很强的力量 定义了软件系统从启动开始的生命周期 构建到最后...并允许用户混合和匹配 他们的系统到生命周期而不是自己凑齐 生命周期..
这具有允许人们移动的额外好处 从一个项目到另一个项目并使用相同的词汇表 软件构建条款
DevOps("开发"以及"操作"的剪切复合物)是一个 强调沟通的软件开发方法, 协作(信息共享和Web服务使用), 集成,自动化和测量之间的合作 软件开发人员和其他IT专业人员。[1] [2]方法 承认软件开发与质量的相互依赖性 保证和IT运营,旨在快速帮助组织 生产软件产品和服务并改善运营 性能
对于"认真的"项目,您的组织(由许多开发人员组成,可能在地理上分布)将您的项目与诸如Sonatype Nexus或Artifactory之类的DevOps工具包集成。反过来,它通常使用Maven来自动化项目构建和运行时依赖性。
但即使是相对简单的" Spring项目,您可能会学会欣赏Maven为您的构建带来的便利(以及相应的JUnit测试)。