zhouzhaoxin
zhouzhaoxin 主攻python,喜欢读书,喜欢摄影,芒格的忠实追随者。关注各个领域发展,取长补短,擅长结合多学科技术解决问题

初识Maven

初识Maven

试想一下,当我们要开展一个新项目的时候。我们第一步就是搭建环境。要从各大官网找jar包、下载jar包、然后分辨重复的、是否有用的、最后放到项目中,项目还没开始就要放几十个jar包,还可能在开发时因为少放了一个而出各种bug,这样做维护时间和成本都很高。Maven可以很好的帮助我们管理jar包,这也就是我们要学习并使用Maven的原因

什么是Maven

Maven是基于项目对象模型(POM),可以通过一小段描述信息来管理项目的构建、报告和文档的软件项目管理工具。

Maven是自动化构建工具,可以管理第三方的jar包。

Maven源文件的目录结构

要使用Maven,首先要到官网下载Maven Maven官网下载地址 下载完成后解压如下图 maven

  • bin目录包含Maven的运行脚本
  • boot目录包含一个类加载器的框架,Maven使用它来加载自己的类库
  • conf是配置文件目录
  • lib是类库(自身及第三方)

此时Maven已经安装到电脑中,打开CMD,进入bin目录输入mvn -v即可查看Maven版本。当然为了方便使用,最好把Maven配置到环境变量中,一般命名为M2_HOME(配置方法和JAVA_HOME一样)

Maven项目的目录结构

使用Maven构建项目时要遵守Maven的目录结构,如下:

1
2
3
4
5
6
7
8
src
     -main
          -java
               -package
     -test
          -java
               -package
     resources

Maven常用命令

mvn compile

编译主程序源代码,不会编译test目录的源代码。第一次运行时,会下载相关的依赖包,可能会比较费时, 生成target文件夹

mvn test

运行应用程序中的单元测试 会生成target文件夹,主程序编译的字节码文件在classes下面,测试程序放在test-classes下,surefire-reports文件夹下面存放是的所生成的测试报告

mvn package

会在target目录下生成一个jar文件

mvn clean

删除target文件夹

由于Maven创建项目的时候要遵守Maven的目录结构,那么每次创建项目的时候我们都手动建立合法目录结构是很麻烦的事,所以 Maven为我们提供的以下两种自动化方式快速创建项目

1
2
3
4
5
mvn archetype:generate 按照提示进行选择
mvn archetype:generate -DgroupId= 组织名 ,公司网址的反写+项目名
                       -DartifactId=项目名-模块名
                       -Dversion=版本号
                       -Dpackage=代码所存在的包名

坐标与仓库

坐标: 构建 maven的唯一标识 groupid artifactId version 共同构建一个坐标 仓库: 本地仓库和全球仓库 M2_HOME\lib\maven-model-builder-版本号.jar中的pom-4.0.0.0.xml中记录了默认的全球仓库的地址

由于国内被墙的缘故,直接从Apache 中央仓库下载jar包会很费时间,所以大多使用镜像仓库,访问速度快,也比较稳定

镜像仓库: 修改镜像仓库的位置: M2_HOME\conf\setting.xml

<mirrors>
  <mirror>
    <id>maven.net.cn</id>
    <mirrorOf>central</mirrorOf><!--可以用*匹配所有的镜像,一旦配置了镜像,所有针对原仓库进行的访问都会转到这个配置的镜像仓库,原仓库将不能再访问-->
    <name>central mirror in china</name>
    <url>http://maven.net.cn/content/groups/public/</url>
  </mirror>
</mirrors>
<!--下面的配置是使用oschina的远程仓库:-->
  <mirror>
      <id>maven.oschina.net</id>
      <mirrorOf>*</mirrorOf>
      <name>central mirror in oschina</name>
      <url>http://maven.oschina.net/content/groups/public/</url>
  </mirror>

修改仓库位置: 默认存在位置:用户目录.m2\repository 修改settings.xml中的localRespository节点的路径之后即修改了仓库的默认位置