试图了解Maven在STS中的作用

时间:2015-07-07 21:22:13

标签: eclipse spring maven

我已经使用Eclipse一段时间了(仅用于一般的Java开发),现在我正在尝试理解STS带来的附加功能,并且还学习Spring Boot开发。我看到当我创建一个Spring Boot项目时,它总是希望我选择Maven或Gradle作为构建工具,但我不确定为什么或者它做了什么。

当我在环境中工作时,我完全不了解Maven正在做什么。 Eclipse总是编译代码并通过调用编译器为我做其他事情,我从不需要像ant或Maven那样的外部构建工具。

如果我想在Eclipse环境之外构建应用程序或者STS是否依赖外部构建工具,那么它只是制作Maven配置吗?

1 个答案:

答案 0 :(得分:1)

  1. 对于小型,#34; Hello world",项目简单的Eclipse编译/调试已经足够好了。

  2. Maven是"更高级别"比" make / makefile" (经典的C / C ++构建工具)或" ant / build.xml"。具体做法是:

  3.   

    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的实际版本。

         

    强大的生命周期有很强的力量   定义了软件系统从启动开始的生命周期   构建到最后...并允许用户混合和匹配   他们的系统到生命周期而不是自己凑齐   生命周期..

         

    这具有允许人们移动的额外好处   从一个项目到另一个项目并使用相同的词汇表   软件构建条款

    1. 在更高的层次上,Maven是一个首选的构建系统,适用于对" ALM" ("自动化生命周期管理")," CI" (持续整合")," CLM" ("持续生命周期管理")和/或" Devops":
    2.   

      https://www.ibm.com/developerworks/community/blogs/nfrsblog/entry/DevOps_best_practices_a_6_part_series?lang=en

           

      DevOps("开发"以及"操作"的剪切复合物)是一个   强调沟通的软件开发方法,   协作(信息共享和Web服务使用),   集成,自动化和测量之间的合作   软件开发人员和其他IT专业人员。[1] [2]方法   承认软件开发与质量的相互依赖性   保证和IT运营,旨在快速帮助组织   生产软件产品和服务并改善运营   性能

      1. 对于"认真的"项目,您的组织(由许多开发人员组成,可能在地理上分布)将您的项目与诸如Sonatype NexusArtifactory之类的DevOps工具包集成。反过来,它通常使用Maven来自动化项目构建和运行时依赖性。

      2. 但即使是相对简单的" Spring项目,您可能会学会欣赏Maven为您的构建带来的便利(以及相应的JUnit测试)。