Maven项目管理利器

我是一个要做程序员的男人。有问题可以随时联系我。

  • 1、maven快速入门
  • 2、maven核心知识
  • 3、maven建立web项目

1、Maven快速入门

1.1 maven介绍及环境搭建

maven是基于项目对象模型(POM),可以通过一小段描述信息来管理项目的构建、报告和文档的软件项目管理工具。
在apache官网下载maven安装包。
下载地址:https://maven.apache.org/download.cgi
目录结构如下:

  • bin/
  • boot/
  • conf/
  • lib/
    将当前的bin目录设为环境变量
    此时maven安装成功

1.2 maven目录结构

pom.xml说明



    4.0.0
    
    
    com.imooc.maven01
    
    maven01-model
    
    0.0.1SNAPSHOT
    
    
        
            junit
            junit
            4.10
        
    

mvn compile 项目编译命令
mvn test 运行测试用力

执行完成测试后,得到一个target目录
classes ------------------ 项目字节码文件
maven-status ------------
surefire-reports ----------- 测试报告
test-classes --------------- 测试字节码文件

mvn package 打包,将项目打包成一个jar包
jar包名字由 模块名-版本名

2、Maven核心知识

2.1 maven基础知识

常用命令

mvn -v 查看版本
mvn compile 编译
mvn test 测试
mvn package 打包
mvn clean 删除target
mvn install 安装jar包到本地仓库

在此对mvn install进行说明,将项目发布到本地仓库,若有其他项目需要使用的时候直接在pom.xml中添加项目依赖,可以将该jar包加入使用

2.2 maven自动创建目录骨架

archetype插件用于创建maven规定的目录骨架

运行命令 mvn archetype:generate 进行构建目录骨架
输入以上的命令,在最后会要求输入 groupId artifactId version package
mvn archetype:generate -DgroupId:com.xxx.xxx -DartifactId=maven-demo -Dversion=1.0.0SNAPSHOT -Dpackage=com.xxx.xxx.maven-demo

2.3 maven中的坐标与仓库

在maven中任何一个依赖、插件项目输出可以认为是一个构件
构件通过坐标作为其唯一的标识
groupId artifactId version 构成唯一的坐标
仓库用来管理项目依赖的,仓库分为本地仓库远程仓库
远程仓库在lib/maven-model-builder-3.5.0.jar中的pom-4.0.0.xml,这是一个超级的pom所有都会继承此


  
    
      central    
      Central Repository     
      https://repo.maven.apache.org/maven2   
      default   <--默认地址-->
      
        false   <--禁止下载快照-->
      
    
  

镜像仓库,为了防止下载国外的比较慢
conf/settings.xml中找到标签添加


 
      maven.net.cn
      central
      central mirror in china
      http://maven.net.cn/content/groups/public
    

更改仓库位置
默认在当前用户的.m2目录中,mvn install发布的jar包也在此
找到conf/settings.xml中找到标签中,修改路径

/path/to/local/repo

2.4 maven的生命周期与插件

1、完成的项目构建过程过程:
clean、compile、test、package、install
清理、编译、测试、打包、集成测试、验证、部署
2、maven声明周期
clen 清理项目

  • pre-clean 执行清理前的工作
  • clean清理上一次构建生成的所有文件
  • post-clean 执行清理后的文件

default 构建项目(最核心)

  • compile test package install 都属于此

site 生成项目站点

  • pre-site 在生成项目站点前要完成的工作
  • site 生成项目的站点文档
  • post-site 在生成项目站点后要完成的工作
  • site-deploy 发布生成的站点到服务器上

3、插件

    
        
            
                org.apache.maven.plugins
                maven-source-plugin
                2.4
                
                    
                        package 
                        
                            jar-no-fork 
                        
                    
                
            
        
    

2.5 pom.xml常用元素介绍



    
    4.0.0
    
    
    
    
    
    0.0.1SNAPSHOT
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
        
    
    
    
    
        
        
            
            junit
            junit
            4.10
            
            
            test
            
            
            
            
                
            
        
    
    
    
    
        
            
            
        
    
    
    
        
        
            
                
                org.apache.maven.plugins
                maven-source-plugin
                2.4
                
                    
                        package 
                        
                            jar-no-fork 
                        
                    
                
            
        
    

2.6 maven依赖范围

三种classpath:编译、测试、运行
test表示只存在于测试的classpath


中共有6中范围
compile:默认范围,编译测试运行都有效
provided:在编译和测试时有效
runtime:在测试和运行时有效
test:在测试有效
system:与本机系统相关联,可移植性差
import :导入的范围,只使用在dependencyManagement中,表示从其他的pom中导入的dependecy的配置

2.7maven依赖冲突

1、短路优先,优先解析短的版本
A->B->C->X(jar)
A->D->X(jar) 解析该版本
2、路径一致情况下,先声明先优先

2.8maven聚合和继承

对父pom.xml而言需要设置pom

..加入至模块的信息

对子模块而言需要设置

     ...加入父的坐标

你可能感兴趣的:(Maven项目管理利器)