Maven介绍

2017/10/23 Maven

Maven是一个项目管理和综合工具。Maven提供了开发人员构建一个完整的生命周期框架。开发团队可以自动完成项目的基础工具建设,Maven使用标准的目录结构和默认构建生命周期。


Maven构建过程

  • 生成源码(如果项目使用自动生成源码)
  • 从源码生成项目文档;
  • 编译源码;
  • 将编译后的代码打包成JAR文件或者ZIP文件
  • 将打包好的代码安装到服务器、仓库或者其它的地方

pom文件

  • modelVersion: 描述这个POM文件是遵从哪个版本的项目描述符。例如:4.0.0
  • groupId: groupID是项目组织唯一的标识符,实际对应JAVA的包的结构,是main目录里java的目录结构。
  • artifactId: artifactID就是项目的唯一的标识符,实际对应项目的名称,就是项目根目录的名称。
  • modules: 一个多模块项目通过一个父POM 引用一个或多个子模块来定义
  • parent: maven项目之间的继承关系
  • packaging:打包方式,常用pom,jar,war,ear

jar、war、ear的使用和区别

  • jar文件,扩展名为Java Application Archive,包含Java类的普通库、资源(resources)、辅助文件(auxiliary files)等。
  • war文件,扩展名为Web Application Archive,包含全部Web应用程序。在这种情形下,一个Web应用程序被定义为单独的一组文件、类和资源,用户可以对jar文件进行封装,并把它作为小型服务程序(servlet)来访问。
  • ear文件,扩展名为Enterprise Application Archive,包含全部企业应用程序。在这种情形下,一个企业应用程序被定义为多个jar文件、资源、类和Web应用程序的集合。

Maven项目结构:

---- app-parent
             |-- pom.xml (pom)
             |
             |-- app-util
             |        |-- pom.xml (jar)
             |
             |-- app-dao
             |        |-- pom.xml (jar)
             |
             |-- app-service
             |        |-- pom.xml (jar)
             |
             |-- app-web
                      |-- pom.xml (war)   

  • 上述简单示意图中,有一个父项目(app-parent)聚合很多子项目(app-util, app-dao, app-service, app-web)。每个项目,不管是父子,都含有一个pom.xml文件。而且要注意的是,小括号中标出了每个项目的打包类型。父项目是pom,也只能是pom。子项目有jar,或者war。根据它包含的内容具体考虑。

Search

    Table of Contents