• Maven简介


      随着项目越来越多的使用Maven,但对Maven还是一知半解,所以打算写几篇文章,加深一下对Maven的了解。

    1.什么是Maven

      通俗的来讲,Maven就是管理项目的工具,用于构建项目。试想一个Java项目,每次构建都要经过编译,运行,打包,生成文档等步骤,当你的项目变得越来越庞大和复杂时,这将会是一件多么费时又费力的任务。有句话说的不错,成功的软件工程需要构建工具。构建工具的出现,则可以将这些繁杂的任务通过几个简单的命令来实现,这样,我们就可以有更多的时间花在编码或其他方面上了。

    2. Maven特点

    a. jar包管理

      这或许是Maven最突出的特点了。以前在整合SSH的时候,最头疼的不是这几个框架的配置文件,而是jar包的管理。

    (1)jar包缺少:编程时,经常出现这种情况,这边缺少common-logging,那边缺少mysql-connector-java,然后去网上找,找到各种版本的;

    (2)jar包冲突:自己导入jar包,经常会出现版本不一致情况,如要进行单元测试,需要一个junit4的,找来了一个junit3版本的。有时候不清楚,还可以同时导入两个不同版本的jar包,而这种情况,以前的时候还是经常见到的;

    (3)使用Maven后,我们只需在pom里配置一下,Maven就会帮我们自动下载对应的jar包,这样我们在团队中开发时,如果别人需要使用这个工程时,不用来回的拷贝这些jar包,直接拷贝一下pom文件即可;

     

    b. 模块化管理

    (1)所谓模块化,就是把复杂问题给分解开来,降低问题的复杂度,同时符合高内聚,低耦合的思想。另一个好处便是模块的重用,即模块化后,一些模块可以单独拿出来给不同的项目使用;

    (2)模块划分:一般情况下, 有如下几种:

      1. 基于水平方向的划分。把一个系统按照业务类型进行水平划分成多个模块,比如权限模块,用户管理模块,各种业务模块等;

      2. 基于垂直方向的划分。如一个典型的Java Web项目,我们把它按照系统层次进行垂直划分:

    • Dao层负责与数据库交互;
    • Service层负责处理业务逻辑;
    • Web层负责与浏览器交互;

      3. 还有一种情况是基于系统的易变和不变性来划分,即把经常变动的代码和不经常改变的代码给分离开来;

    (3)Maven的模块化是通过父项目与子项目的pom.xml来管理的,不管是父项目还是子项目,都各自有一个pom.xml,我们只需在里面配置好信息,Maven便会帮我们很轻松的管理项目;

    c. 约定优于配置

      这是很多项目采取的一个原则,虽然损失了一点灵活性,但却可以减少配置,降低复杂性,使我们的程序更优雅。如类的命名方式,测试用例的编写,数据库表的命名等。

    d. 版本管理

      Maven的版本定义是这样的:

      <主版本>.<次版本>.<增量版本>

      比如说1.2.3,主版本是1,次版本是2,增量版本是3。

      主版本一般来说代表了项目的重大的架构变更,比如说Maven2和Maven 3,在架构上已经两样了。次版本一般代表了一些功能的增加或变化,但没有架构的变化,比如说Nexus 1.3较之于Nexus 1.2来说,增加了一系列新的或者改进的功能(仓库镜像支持,改进的仓库管理界面等等),但从大的架构上来说,1.3和1.2没什么区别。至于增量版本, 一般是一些小的bug解决,不会有重大的功能变化。

     

  • 相关阅读:
    使用某些 DOCTYPE 时会导致 document.body.scrollTop 失效
    VB.NET 笔记1
    知识管理系统Data Solution研发日记之一 场景设计与需求列出
    知识管理系统Data Solution研发日记之五 网页下载,转换,导入
    折腾了这么多年的.NET开发,也只学会了这么几招 软件开发不是生活的全部,但是好的生活全靠它了
    分享制作精良的知识管理系统 博客园博客备份程序 Site Rebuild
    知识管理系统Data Solution研发日记之四 片段式数据解决方案
    知识管理系统Data Solution研发日记之二 应用程序系列
    知识管理系统Data Solution研发日记之七 源代码与解决方案
    知识管理系统Data Solution研发日记之三 文档解决方案
  • 原文地址:https://www.cnblogs.com/xiaozhang2014/p/5308790.html
Copyright © 2020-2023  润新知