Maven的简介

1.主要内容

2.Maven的简介

2.1简介

        Maven这个词可以翻译为“专家”,“内行”。作为Apache组织中的一个颇为成功的开源项目,Maven主要服务于基于java平台的项目构建,依赖管理和项目信息管理。

       无论是小型的开源类库项目还是大型的企业级应用;无论是传统的瀑布式开发,还是流行的敏捷开发,Maven都能大显身手。

注:

  • 瀑布式开发:项目必须有明确的需求,按需求一步一步做好规划,项目运行过程中要严格的阐述一些文档,按流程一步一步走下去。
  • 敏捷开发:先将用户最关注的软件模型做出来,然后做上线。根据需求修改,再去发布。可以快速迭代,直到用户满意为止。

2.2项目构建

       不管你是否意识到,构件是每一位程序员每天都在做的工作。早上来到公司,我们做的第一件事就是从源码库中最新的代码,然后进行测试,如果测试失败,会找相关的同事一起调试,修复代码错误。接着回到自己的工作上来,编写自己的单元测试及产品代码。

        仔细总结一下,我们会发现,除了编写源代码,我们每天有相当一部分时间花在编译、单元测试、生成文档、打包和部署等繁琐且不起眼的工作上,这就是构建。如果我们现在还手工这样做,那成本太高了,于是有人用软件的方法让着一系列工作自动化,使得软件的构件可以像全自动流水线一样,只需要一条简单的命令,所有繁琐的步骤都能自动完成,很快就能得到最终结果。

2.3项目构建工具

Ant构建

最早的构建工具,基于IDE,大概是2000年有的,当时最流行java构建工具,不过它的XML脚本编写格式让XML文件特别大,对工程构建过程控制特别好

Maven【java】

项目对象模型,通过其描述信息管理项目的构建,报告和文档的软件项目管理。它填补了Ant缺点,Maven第一次支持了从网络上下载的功能,仍然采用xml作为配置文件,Maven专注的是依赖管理,使用java编写。

Gradle

属于结合以上两个的优点,它继承了Ant的灵活和Maven的生命周期管理,它最后被Google作为了Android御用管理工具。它最大的区别是不用XML作为配置文件格式,采用了DSL格式,使得脚本更加简洁。

目前市面上Ant比较老,所以一般是一些比较传统的软件企业公司使用,Maven使用java编写,是当下大多数互联网公司会使用的一个构建工具,中文文档也比较齐全,gradle是用groovy编写,目前比较新型的构件工具一些初创互联网公司会使用,以后会有很大的使用空间。

2.4Maven的四大特性

2.4.1依赖管理系统

Maven为java世界引入了一个新的依赖管理系统jar包管理,jar升级时修改配置文件即可。在java世界中,可以用groupId、artifactId、version组成的Coordination(坐标)唯一标识一个依赖。

任何基于Maven构件的项目自身也必须定义三项属性,生成的包可以是jar包,也可以是war包或者jar包。

依赖引入如下:

<dependency>
    <groupId>javax.servlet</groupId>
    <artifactId>javax.servlet-api</artifactId>
    <version>3.1.0</version>
</dependency>

坐标属性的理解

Maven坐标为各种组件引入了秩序,任何一个组件必须标明定义自己的坐标、

groupId:定义当前Maven项目隶属的实际项目-公司名称。(jar包所在仓库路径)由于Maven中模块的概念,因此一个实际项目往往会被划分许多模块,比如Spring是一个实际项目,其对应的Maven模块会有很多,如Spring-core或Spring-webmvc等。

artifactId:该元素定义实际项目中的一个Maven模块-项目名,推荐的做法是使用项目名称作为artifactId的前缀。

version:该元素定义Maven项目当前所处的版本。

2.4.2多模块构建

项目复查时 dao service controller 层分离将一个项目分解为多个模块已经是很通用的一种方式。

在Maven中需要定义一个parent POM作为一组model的聚合POM。在该POM中可以使用<modules>标签来定义一组子模块。parent POM不会有什么实际构建产出。而parent POM中的build配置以及依赖配置会自动继承给子model。

2.4.3一致的项目结构

在eclipse和idea中目录结构都是一样的。

2.4.4一致的构建模型和插件机制

<plugin>
    <groupId>org.mortbay.jetty</groupId>
    <artifactId>maven-jetty-plugin</artifactId>
    <version>6.1.25</version>
    <congiguration>
         <scanIntervalSeconds>10</scanIntervalSeconds>
         <contextPath>/test</contextPath>
    </configuration>
</plugin>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值