Maven简介

文章目录

  • Maven介绍
  • maven下载
  • 环境变量配置
  • setting文件配置
    • 配置maven本地仓库
    • 修改依赖下载地址
  • 修改IDEA中的maven配置
  • 创建Maven项目
  • Maven目录结构

Maven介绍

Maven是Apache提供的一款自动化构建工具,用于自动化构建和依赖管理。
在之前我们编写代码时,我们在使用一些Java已有的工具类时,都是由JDK提供的,通过import引入暴路径,但是我们在连接数据库时就需要引入第三方jar包。如果还需要mysql驱动,就需要把这些驱动jar包放在classpath中。
其次,我们还需要确定项目的目录结构,例如src存放源码,resources存放配置文件,bin存放.class文件等等。还需要配置环境,如jdk版本。
最后,如果不适用IDE编译,我们还得使用命令行工具,才能让项目在一个独立的服务器上编译、测试、部署。
这些工作难度不大且较繁琐,我们每一个项目都这样搞的话,很可能会一团糟。而Maven就是专门为Java项目打造的管理和构建工具,它的功能:

  • 提供了一套标准化的项目结构
  • 提供了一套标准化的构建流程
  • 提供了一套依赖管理机制

maven下载

下载地址http://mirror.bit.edu.cn/apache/maven/maven-3/3.5.4/binaries/
Maven简介_第1张图片
解压后会得到如下目录
Maven简介_第2张图片

环境变量配置

与之前配置jdk相似,在环境变量中新建MAVEN_HOME

Maven简介_第3张图片
随后,在path环境变量下添加 %MAVEN_HOME\bin

Maven简介_第4张图片
如果按照上文配置成功之后,可以查看maven的版本,如果提示不是内部或外部命令,最好再检查一下环境变量的配置
Maven简介_第5张图片

setting文件配置

我们要修改的setting文件在我们刚下载好的maven的conf目录下。
Maven简介_第6张图片

配置maven本地仓库

我们使用maven会将相关依赖从远程仓库下载到本地仓库。这里可以自己新建一个目录来存放。
在这里插入图片描述

修改依赖下载地址

Maven默认的远程仓库在国外,下载的速度会非常慢,有时甚至会被拦截,解决办法有两种。
一种便是配置VPN。
其次便是使用国内的一些仓库,配置如下:

  <mirrors>
    <!-- mirror
     | Specifies a repository mirror site to use instead of a given repository. The repository that
     | this mirror serves has an ID that matches the mirrorOf element of this mirror. IDs are used
     | for inheritance and direct lookup purposes, and must be unique across the set of mirrors.
     |
    <mirror>
      <id>mirrorId</id>
      <mirrorOf>repositoryId</mirrorOf>
      <name>Human Readable Name for this Mirror.</name>
      <url>http://my.repository.com/repo/path</url>
    </mirror>
     -->
	  <mirror>
           <id>alimaven</id>
           <name>aliyun maven</name>
           <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
           <mirrorOf>central</mirrorOf>
    </mirror>
    <mirror>
        <id>ui</id>
        <mirrorOf>central</mirrorOf>
        <name>Human Readable Name for this Mirror.</name>
        <url>http://uk.maven.org/maven2/</url>
    </mirror>
    <mirror>
        <id>jboss-public-repository-group</id>
        <mirrorOf>central</mirrorOf>
        <name>JBoss Public Repository Group</name>
        <url>http://repository.jboss.org/nexus/content/groups/public</url>
    </mirror>
    <mirror>
        <id>repo2</id>
        <mirrorOf>central</mirrorOf>
        <name>Human Readable Name for this Mirror.</name>
        <url>http://repo2.maven.org/maven2/</url>
    </mirror>
    <mirror>
        <id>OSChina</id>
        <name>OSChina Central</name>
        <url>http://maven.oschina.net/content/groups/public/</url>
        <mirrorOf>central</mirrorOf>
    </mirror>
    <mirror>
        <id>nexus-osc-thirdparty</id>
        <mirrorOf>thirdparty</mirrorOf>
        <name>Nexus osc thirdparty</name>
        <url>http://maven.oschina.net/content/repositories/thirdparty/</url>
    </mirror>
  </mirrors>

将上文的所有 < mirror >…< /mirror >的内容拷贝到配置文件的 < mirrors >…< /mirrors >的标签中。修改完后保存。
Maven简介_第7张图片

修改IDEA中的maven配置

Maven简介_第8张图片
点击Defaul Setting之后在左侧选择Maven点击,随后对右边圈出的三处进行配置

Maven简介_第9张图片
在配置setting file时要先够选Override,随后点击右侧按钮选择setting文件。第三个也需要够选Override。修改完后要记得点击ok应用。
自动更新配置:
左侧点击Maven下面的Importing,右侧根据下图进行勾选。
Maven简介_第10张图片

创建Maven项目

Maven简介_第11张图片
Maven简介_第12张图片
Maven简介_第13张图片
以上操作完成后,一直点击next,直至finsh即可。
之后会弹出对话框,选择新窗口或覆盖当前窗口。
Maven简介_第14张图片
创建好之后会,项目会先下载自己所需的依赖,这个过程需保持网络畅通。
在这里插入图片描述
完成之后,会如上图,如果没有配置使用国内仓库,这个过程可能会比较漫长。

Maven目录结构

一个使用Maven管理的普通的项目,目录结构大致如下
Maven简介_第15张图片
maven是项目名
项目描述文件pom.xml
Java源码目录src/main/java
资源文件目录src/main/resources
测试源码目录src/test/java
测试资源目录src/test/resources
最后,我们把所有编译打包的文件都放在target目录里,这就是一个标准的Maven项目的目录结构。这些都是约定好的,不要随意修改结构。

我们再来看一下项目描述文件pom.xml:
大致长这样

<project ...>
	  <modelVersion>4.0.0</modelVersion>

  <groupId>com.tulun</groupId>
  <artifactId>maventest</artifactId>
  <version>1.0-SNAPSHOT</version>

  <name>maventest</name>
  <!-- FIXME change it to the project's website -->
  <url>http://www.example.com</url>

  <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <maven.compiler.source>1.7</maven.compiler.source>
    <maven.compiler.target>1.7</maven.compiler.target>
  </properties>

    <dependencies>
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>5.1.39</version>
        </dependency>
    </dependencies>
</project>

其中,groupId类似于Java的包名,通常是公司或组织名称,artifactId类似于Java的类名,通常是项目名称,再加上version,一个Maven工程就是由groupId,artifactId和version作为唯一标识。我们在引用其他第三方库的时候,也是通过这3个变量确定。例如,依赖mysql:

<dependency>
     <groupId>mysql</groupId>
     <artifactId>mysql-connector-java</artifactId>
     <version>5.1.39</version>
</dependency>

使用< dependency >声明一个依赖后,Maven就会自动下载这个依赖包并把它放到classpath中。

你可能感兴趣的:(框架,maven,java)