java项目管理工具Maven

Maven 翻译为“专家 内行”

Maven是跨平台的项目管理工具,主要服务

1.基于java平台的项目构建 

项目完整的构建过程包括:清理-编译-测试-报告-打包-部署

理想的项目构建:高度自动化,跨平台,可重用的组件,标准化的

什么是依赖?为什么要进行依赖管理?   自动下载统一依赖管理

有哪些项目信息:项目名称描述,开发人员信息,开发者信息等

maven项目构建:一步构建 ,自动构建

2.依赖管理

3.项目信息管理

二.Maven的安装与配置

官网下载并解压——》配置环境变量——》cmd——》mvn -v  显示以下信息为配置成功

新建系统变量:MAVEN_OPTS  值为:  -Xms128m  -Xmx512m    点击确定

xms为java初始化对内存大小    xmx为java最大对内存大小

配置用户范围的settings.xml

       位置是:MAVEN_HOME/conf/settings.xml     全局的  管理所有用户

      ~/.m2/settings.xml   单个用户的(~号称为linux的登录用户的家目录    在windows下指c:\Users\Administrator (以Admin用户身份登录))

       复制 MAVEN_HOME/conf/settings.xml到c:\Users\Administrator\.m2\目录下     此时  修改这个settings.xml用来管理当前用户

Maven的默认约定如下:

src/main/java ---存放项目的.java文件

src/main/resources ---存放项目资源文件,如Spring  ,hibernate配置文件

src/test/java--存放所有测试.java文件,如JUnit测试类

src/test/resources--测试资源文件

target----项目输出位置

pom.xml标识这是一个Maven项目(约定)

Maven的编译:

切换到项目目录下然后输入下面的命令(对整个项目进行编译)

mvn compile

然后在target目录下可以看到编译好的.calss文件

测试命令:mvn test      (会自动生成target目录并将测试及测试之前的步骤都实现(编译----测试))

在target中生成会报告文件

打包命令:mvn clean package(清除target并实现    编译--测试——报告——打包)(这是一个组合命令“清理  打包”)

清理命令:mvn clean(target目录及target下编译出来的文件会被清理)

安装命令:mvn  install (将自己打包好的jar包安装到仓库里面(仓库就是~     位置是C:\Users\Administrator\.m2\repository))

部署命令:deploy  将最终的包安装至本地仓库并部署到私服 已让其他开发人员与项目共享

生成站点文档:site 生成项目的站点文档

Maven的核心概念:

    maven坐标:(坐标是唯一的)

          四部分构成(确定要使用的jar包的唯一性)

                            groupid:定义当前Maven项目隶属于项目

                            artifactid:定义实际项目中的一个模块(接近于类名)

                            version:定义项目的当前版本

                             packaging:定义该项目的打包方式(缺省值是jar  所以一般打包形式是jar包)

       范围:eg:   <scope>test</scope>

                范围有四种:

                         1.complie  :(缺省时就是它 )默认的编译依赖范围。对于编译、测试、运行三种classpath都有效

                       2.test:测试依赖范围。只对于测试classpath有效

                       3.provided:已提供依赖范围。对于编译,测试的classpath都有效,但对于运行无效,因为容器已经提供,例如servlet-api

                         4.runtime:运行时提供。例如:jdbc驱动

   仓库管理:

           用来同意存储所有Maven共享构建的位置就是仓库

仓库布局

         根据Maven坐标定义每个构建在仓库的唯一存储路径

 仓库分类

           本地仓库:

                        ~/.m2/repository/

                        每个用户只有一个本地仓库

         远程仓库:

                      中央仓库:Maven默认的远程仓库

                          http://repo1.maven.org/maven2

                       私服Nexus:是一种特殊的远程仓库,他是架设在局域网内的仓库

                        镜像:用来替代中央仓库,速度一般比中央仓库快(与中央仓库地址不同    )

生命周期:maven生命周期就是为了对所有的构建过程进行抽象和统一,

                  包括项目清理,初始化,编译,打包,测试,部署等几乎所有构建步骤

maven三大生命周期

                clean:清理项目的

               default(缺省):构建项目的

                site(站点):生成项目站点的

三.maven与eclipse的整合

      如何安装:zest插件安装

                        m2e插件安装

                         m2e-extras插件安装

依赖的传递性!!!! 

 A 依赖 B              B依赖  C              则A间接依赖C          A距离B距离是1  A距离C距离是2

依赖的冲突解决规则·:路径最近者优先,路径相同时第一申明者优先(先后顺序是看项目的pom.xml)

聚合和继承:

如果我们想一次构建多个项目模块,那么我们就需要对多个项目模块进行聚合

<modules><module></module></modules>

在父工程位置的pom.xml 进行编辑 eg:

在module里面是各个子项目“子模块功能”

<modules>

             <module>../Hello</module>

              <module>../HelloFriend</module>

               <module>../web</module>

</modules>

何为继承?(消除代码冗余,建立父亲项目,建立依赖管理,在子项目再指明依赖的groupid和artifactid,消除版本号'方便管理版本号")

          继承是为了消除重复,我们把很多相同的配置提取出来

           例如:grouptid,version等

继承与聚合的关系:

              聚合主要是为了快速构建项目

               继承主要是为了消除重复

  

四.建立Maven私服-Nexus

五.部署

猜你喜欢

转载自blog.csdn.net/lxw23333/article/details/81301451