maven

Maven简介

Maven是什么

Maven是基于项目对象模型(POM project object model),可以通过一小段描述信息(配置)来管理项目的构建,报告和文档的软件项目管理工具
通过pom.xml文件的配置获取jar包,而不用手动去添加jar包
合理叙述项目间的依赖关系

Maven下载安装

下载地址:http://maven.apache.org/download.cgi
安装:直接解压就可以

目录结构

bin:包含了Maven的运行脚本文件
boot:Maven的依赖的类加载器
conf:
Maven的全局配置文件(settings.xml),定制Maven的运行行为
把C:\Users\64434.m2\repository作为本地仓库的路径,可以通过核心配置 文件来改
lib:依赖jar包

maven环境变量配置

配置的目的:想要在任何地方都能够运行mvn命令
配置两个一个Home
一个home/bin
在这里插入图片描述
打开命令行输入mvn -v 查看结果

Maven使用

Maven规定了一套默认的项目格式

  1. src/main/java
    存放项目的.java文件
  2. src/main/resources
    存放项目资源文件,如spring、struts2配置文件,db.properties
  3. src/main/webapp
    存放jsp,css,image等文件
  4. src/test/java
    存放所有测试.java文件,如JUnit测试类
  5. src/test/resources
    测试资源文件
  6. pom.xml
    主要要写的maven配置文件
  7. target
    项目由maven自动输出位置

创建第一个Maven项目

确保idea安装了Maven插件

创建Maven工程
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
添加Maven依赖jar包
在这里插入图片描述
会自动把jar依赖到项目当中

Maven仓库

Maven所有的Jar包都是放到maven仓库当中
在项目当中是对仓库jar包的引用

Maven仓库
本地仓库:本地存放jar的目录
私服:私人搭建的服务器,一般在企业内部局域网使用
中央仓库:Maven内置了一个远程仓库的地址,它就是中央仓库

Maven找jar包的过程

Maven查找引入jar包时, 会先到本地仓库当中查找,没有找到现到私服中找,也没有就去到远程中央仓库查找.
找到后会下载到本地仓库,下次就不用到远程仓库了
最终都会把jar包下载到本地仓库
Maven工程最终引用的都是本地的jar包

设置本地仓库目录地址
默认本地仓库
在这里插入图片描述
修改本地仓库

  1. 把maven安装目录config中setting.xml复制一份到.m2文件夹下
    在这里插入图片描述
  2. 打开setting.xml修改本地仓库地址
    在这里插入图片描述
    阿里云镜像
<mirror>
      <id>alimaven</id>
      <mirrorOf>central</mirrorOf>
      <name>aliyun maven</name>
      <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
    </mirror>

Maven常用命令

  1. validate
    确保当前配置和 POM 的内容是有效的
  2. clean
    删除target目录下及其目录下的所有内容
  3. mvn compile
    将java文件编译成二进制放到target目录当中
  4. test
    运行测试用例
  5. package
    打包工程
  6. install
    把maven打成的包发布到本地仓库当中

后一个执行时, 前面命令都会执行
在这里插入图片描述

Maven作用范围

scope

  1. compile
    默认值 他表示被依赖项目需要参与当前项目的编译,还有后续的测试,运行周期也参与其中,是一个比较强的依赖。打包的时候通常需要包含进去
  2. test
    依赖项目仅仅参与测试相关的工作,包括测试代码的编译和执行,不会被打包,例如:junit
  3. runtime
    表示被依赖项目无需参与项目的编译,不过后期的测试和运行周期需要其参与。与compile相比,跳过了编译而已。例如JDBC驱动,适用运行和测试阶段
  4. provided
    打包的时候可以不用包进去,别的设施会提供。事实上该依赖理论上可以参与编译,测试,运行等周期。相当于compile,但是打包阶段做了exclude操作
  5. system
    从参与度来说,和provided相同,不过被依赖项不会从maven仓库下载,而是从本地文件系统拿。需要添加systemPath的属性来定义路径

Maven创建Web工程

注意事项

generating project in batch mode 很慢,是应为maven获取archetype-catalog.xml导致
用浏览器打开http://repo1.maven.org/maven2/archetype-catalog.xml很慢 解决方法:
在用maven创建项目时在properties中添加 archetypeCatalog=internal,让maven读取本地配置即可

tomcat插件

 <plugins>
      <plugin>
        <groupId>org.apache.tomcat.maven</groupId>
        <artifactId>tomcat7-maven-plugin</artifactId>
        <version>2.2</version>
        <configuration>
          <port>8081</port>
          <path>/</path>
        </configuration>
      </plugin>
    </plugins>
posted @ 2020-07-28 00:33  joker_dj  阅读(98)  评论(0编辑  收藏  举报