Save Load
GitHub 切换暗/亮/自动模式 切换暗/亮/自动模式 切换暗/亮/自动模式 返回首页

Maven

Maven

转自:Apache Maven

链接:https://maven.apache.org/index.html

Maven 生命周期

1、clean        :清理上一次构建生成的所有文件;
2、validate
3、compile      :编译项目的源代码;
4、test         :运行测试代码;
5、package      :打包成jar或者war或者其他格式的分发包;
6、verify
7、install      :将打好的包安装到本地仓库,供其他项目使用;
8、site         :生成项目的站点文档;
9、deploy       :将打好的包安装到远程仓库,供其他项目使用;

Maven 目录分析

1:Maven 目录分析
    bin:含有mvn运行的脚本
    boot:含有plexus-classworlds类加载器框架
    conf:含有settings.xml配置文件
    lib:含有Maven运行时所需要的java类库
    Settings.xml 中默认的用户库: ${user.home}/.m2/repository[通过maven下载的jar包都会存储到指定的个人仓库中]
    Maven默认仓库下载地址在: maven的lib目录下maven-model-builder-3.0.4.jar的pom.xml中

IDEA 自带 Maven 配置

标签: Java

环境变量
在环境变量的系统变量中添加
MAVEN_HOME:F:\IntelliJ IDEA 2019.2.3\plugins\maven\lib\maven3(你的maven所在位置)
MAVEN_OPTS:-Xms128m -Xmx1024m

在环境变量的用户变量中的Path中添加:%MAVEN_HOME%\bin

Maven 创建项目目录结构

my-app
|-- pom.xml
`-- src
    |-- main
    |   `-- java
    |       `-- com
    |           `-- mycompany
    |               `-- app
    |                   `-- App.java
    `-- test
        `-- java
            `-- com
                `-- mycompany
                    `-- app
                        `-- AppTest.java
2:创建目录结构:
  Hello
   --src   
   -----main
   ----------java           --用来存放Java文件
   ----------resources      --用来存放资源文件
   ----------webapp/WEB-INF --web应用文件目录,web项目的信息,比如存放web.xml、本地图片、jsp视图页面
   -----test
   ---------java            --用来存放测试的Java文件
   ---------resources
   --target                 --项目输出位置,编译完毕后自动生成
   -----classes             --编译输出目录
   -----test-classes        --测试编译输出目录
   --pom.xml                -- 项目对象模型的描述 ,它是maven配置的核心

Maven 核心概念

5:Maven核心概念:
  5.1:Maven插件
    Maven的核心仅仅定义了抽象的生命周期,具体的任务都是交由插件完成的每个插件都能实现多个功能,每个功能就是一个插件目标
    Maven的生命周期与插件目标相互绑定,以完成某个具体的构建任务, Maven的插件在: .m2\org\apache\maven\plugins
  5.2:Maven坐标
    类似在平面几何中坐标(x,y)可以标识平面中唯一的一点, Maven世界拥有大量构建,我们需要找一个用来唯一标识一个构建的统一规范
    拥有了统一规范,就可以把查找工作交给机器
      groupId:定义当前Maven项目隶属项目  (实际对应JAVA的包的结构, 是main目录里java的目录结构)
      artifactId:定义实际项目中的一个模块(项目的唯一的标识符,实际对应项目的名称,就是项目根目录的名称)
      version:定义当前项目的当前版本
  5.3:Maven仓库
    何为Maven仓库:用来统一存储所有Maven共享构建的位置就是仓库
    Maven配置jar包的路径为:groupId/artifactId/version/artifactId-version
    本地仓库(~/.m2/repository/):每个用户只有一个本地仓库
    中央仓库(Maven默认的远程仓库):Maven默认的远程仓库下载地址为:http://repo1.maven.org/maven2
    私服:是一种特殊的远程仓库, 它是架设在局域网内的仓库, 主要是为了团队协作开发
    镜像:用来替代中央仓库, 速度一般比中央仓库快
  5.4:软件构建生命周期,maven软件构建的生命周期
      清除--> 编译-->测试-->报告-->打包(jar\war)-->安装-->部署。
     maven生命周期命令插件(命令:mvn clean):clean--compile--test--package--install-deploy。
     maven坐标:maven通过坐标的概念来唯一标识jar包或者war包

maven 仓库类型 我们在 nexus 私服或其他 maven 库看仓库类型有hosted、proxy、group

项目 具体说明
hosted 本地存储。像官方仓库一样提供本地私库功能
proxy 提供代理其它仓库的类型
group 组类型,能够组合多个仓库为一个地址提供服务