浅析maven基础

一、 maven介绍及环境搭建

Maven (maven[英] [ˈmeivin] [美] [ˈmevən])是基于项目对象模型(POM),可以通过一小段描述信息来管理项目的构建、报告和文档的软件管理工具

boot目录:类加载器框架
bin: mvn运行脚本
conf: 配置文件
lib: 类库、三方依赖库

配置环境变量
右击电脑->属性->高级系统设置->高级(环境变量)
系统变量
新建MAVEN_HOME,指向maven目录
PATH变量:添加%MAVEN_HOME%\bin
PATH变量:如果用的idea,找到安装路径,添加 安装路径\IntelliJ IDEA 2020.1\plugins\maven\lib\maven3\bin

二、 目录结构

src
main
  • java
    package
  • resource
test
  • java

三、 常用构建命令介绍

mvn

命令 解释
-v 查看maven版本
compile 编译
package 打包
clean 删除target
install 安装jar包到仓库中

四、maven自动创建目录骨架

使用archetype插件创建符合maven规定的目录框架。
这个是给一个文件夹,cmd进入这个文件夹目录下,使用命令在这个文件加下创建maven程序的目录框架。
一般用不到,可用idea\eclipse\sts等工具生成

#按照提示进行选择
mvn archetype:generate
#直接创建
archetype:generate -DgroupId=组织名/公司网址的反写+项目名
				-DartifactId=项目名-模块名
				-Dversion=版本号
				-Dpackage=代码所存在的包名

五、 maven中的坐标和仓库

构件通过坐标作为唯一标识
仓库分为本地和远程仓库,远程仓库位置一般在国外,网速可能不好。可以设置镜像仓库


E:\maven\repository

 
     nexus-aliyun
     *
     Nexus aliyun
     http://maven.aliyun.com/nexus/content/groups/public
 
  1. idea默认仓库位置 C:\Users\lenovo.m2
    可以在这里粘贴下settings.xml文件,再改下本地仓库位置比较好,不然默认的本地仓库在这个位置
  2. eclipse和sts都是4.0以上才集成了maven,之前的版本需要下载下插件放到eclipse的dropins文件夹中。也可以markdown中自动下载
  3. 修改eclipse.ini
    -vm
    C:\java\jdk1.8.0\bin\javaw.exe
  4. maven使用的有一部分jdk中的jar包

六、 maven生命周期和插件

完整的项目构建过程包括:
清理、编译、测试、打包、集成测试、验证、部署
maven生命周期

maven有3套独立的生命周期,互不影响

  1. clean:清理项目
  2. defult:构建项目
  3. site:生成项目站点

clean 清理项目

  • pre-clean 执行清理前的操作
  • clean 清理上一次构建生成的所有文件
  • post-clean 执行清理的文件
    default构建项目(最核心)
  • compile、test、package、install
    site生成项目站点
  • pre-site 在生成项目站点前要完成的工作
  • site生成项目的站点文档
  • post-site 在生成的项目站点后要完成的工作
  • site-deploy 发布生成的站点到服务器上

运行package时对源码同时打包


 
        org.apache.maven.plugins
        maven-jar-plugin
        3.1.2
        
            
                package
                
                    jar
                
            
        
    

七、pom.xml常用元素介绍


4.0.0

反写的公司网址+项目名
项目名+模块名
第一个0代表大版本号,第二个0代表分支版本号,第三个0代表小版本号
0.0.1-SNAPSHOT
snapshot 快照
alpha内部测试
beta公测
Release 稳定版
GA发布版
jar(默认)、war、zip、pom
项目描述名
项目描述
开发人员列表
许可证信息

依赖列表
    依赖项
      com.alibaba 
     fastjson  
     1.2.58
     <\type>
     注解1
     true或false依赖是否可选
      排除依赖传递列表<\exclustion><\exclustions>
    

依赖的管理
    不会被本项目运行,一般放到父模块中,子模块会继承这些依赖
        
            
            
        
    

继承的父模块坐标
    org.springframework.boot
    spring-boot-starter-parent
    2.3.0.RELEASE
     


    插件列表
        
            org.springframework.boot
            spring-boot-maven-plugin
        
        
            org.apache.maven.plugins
            maven-jar-plugin
            3.1.2
            
                
                    package
                    
                        jar
                    
                
            
        
    

聚合maven项目一起编译
    

注解:

  1. scop:依赖范围
    compile 默认的范围,编译测试运行都有效
    provided 在编译和测试有效 例:web容器
    runtime 测试运行时有效 jdbc驱动
    test 测试有效 junit
    system 编译、测试有效 与本机系统关联,可移植性差
    import 只使用在dependencyManagement中,表示可以从其他的pom中导入dependency的配置
  2. 依赖冲突
  • 短路优先
  • 先声明先优先

jetty容器插件管理


    org.mortbay.jetty
    servlet-api
    2.5-20081211

加入后mvn -> build as
jetty:run
如果要package后自动运行


    org.mortbay.jetty
    servlet-api
    2.5-20081211
    
        
            package
            
                run
            
        
    

你可能感兴趣的:(maven,maven,spring,eclipse)