Maven入门

一、什么是Maven

Maven 是一个项目管理综合工具。其主要提供了一个项目对象模型(POM)来管理项目的构建,相关性和文档。其最强大的地方在于能够自动下载项目中所需的依赖库。

打个比方、之前我们在开发Java项目的时候,项目总得引入各种jar包吧,而各种jar包之间的依赖关系错综复杂,一不小心漏了哪个jar包,往往导致一些难以排查的bug。这个时候Maven就派上用场了,你只需要写好POM文件,之后Maven会自动下载POM中的jar包以及其依赖的库,来自动化构建项目。

废话少说,先来自己用一遍。

二、Maven 安装

window下安装:

1、下载maven

 官网下载地址:http://maven.apache.org/download.cgi

一般选择上面的下载解压即可。

一般来说,Maven是一个Java工具,我们必须先安装Java。所以首先先确保你的电脑已经配置好相关的环境变量和JDK环境。

2、添加环境变量

 

其中变量名是:MAVEN_HOME,值是maven的安装路径

3、 在Path环境变量的变量值末尾添加%MAVEN_HOME%\bin

4、在cmd输入mvn –version,如果出现maven的版本信息,说明配置成功。

三、Maven的POM文件

POM代表项目对象模型。这是Maven的核心概念。

POM文件使用XML格式来声明项目资源。

如:

<project xmlns="http://maven.apache.org/POM/4.0.0"
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
   xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
   http://maven.apache.org/xsd/maven-4.0.0.xsd">
   <modelVersion>4.0.0</modelVersion>

<dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.12</version>
        </dependency>
 
</project>

  其中:每个项目只有一个POM文件。

 所有POM文件都需要项目XML元素和三个必填字段:groupIdartifactId,version

 

四、Maven的配置

从中央仓库下载的jar包,都会统一存放到本地仓库中。这个时候我们就需要配置本地仓库的地址了。

打开Maven的安装路径:F:\Maven\apache-maven-3.5.0\conf

conf文件夹下面有一个

 

用记事本或者其他编辑器打开都行,打开后需要做如下操作:

由于Maven在是国外的,下载速度过慢,所以这里使用阿里的镜像。

  <mirrors>

      <mirror>
          <id>alimaven</id>
          <name>aliyun maven</name>
          <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
          <mirrorOf>central</mirrorOf>
      </mirror>
      <!-- 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>
     -->
  </mirrors>

在这里

设置好自己的本地仓库路径。

 五、Maven目录结构

Maven的标准目录结构如下:

- src
  - main
    - java
    - resources
    - webapp
  - test
    - java
    - resources

- target

其中:

src        是源代码和测试代码的根目录。

main      是与源代码相关的根目录到应用程序本身,而不是测试代码。

test      包含测试源代码。

resources 包含项目所需的资源文件。

target    由Maven创建。它包含所有编译的类,JAR文件等。

webapp    包含Java Web应用程序,如果项目是Web应用程序。

六、使用IDEA创建Maven

点击Finish,第一次搭建可能会比较慢,如果用了刚才的镜像就会大大加快速度了。 

创建完成后,打开POM文件添加依赖包,那么如何添加外部依赖jar包呢?

只需要在POM文件中引入对应的<dependency>标签即可。

那我们平常怎么知道要添加的POM文件所对应的groupId,artifactId呢

可以在这个网址:http://mvnrepository.com/,找到对应的jar包版本,如:

下面奉献自己的创建SSM工程所用到的POM文件:

<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">

    <modelVersion>4.0.0</modelVersion>
    <groupId>com.zhong</groupId>
    <artifactId>FirstMaven</artifactId>
    <packaging>war</packaging>
    <version>1.0-SNAPSHOT</version>
    <name>zhong Maven Webapp</name>
    <url>http://maven.apache.org</url>

    <properties>
        <!-- 设置项目编码编码 -->
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
        <!-- spring版本号 -->
        <spring.version>4.3.5.RELEASE</spring.version>
        <!-- mybatis版本号 -->
        <mybatis.version>3.4.1</mybatis.version>
    </properties>

    <dependencies>

        <!-- java ee -->
        <dependency>
            <groupId>javax</groupId>
            <artifactId>javaee-api</artifactId>
            <version>7.0</version>
        </dependency>

        <!-- 单元测试 -->
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.12</version>
        </dependency>

        <!-- 实现slf4j接口并整合 -->
        <dependency>
            <groupId>ch.qos.logback</groupId>
            <artifactId>logback-classic</artifactId>
            <version>1.2.2</version>
        </dependency>

        <!-- JSON -->
        <dependency>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-databind</artifactId>
            <version>2.8.7</version>
        </dependency>


        <!-- 数据库 -->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>5.1.41</version>
            <scope>runtime</scope>
        </dependency>

        <!-- 数据库连接池 -->
        <dependency>
            <groupId>com.mchange</groupId>
            <artifactId>c3p0</artifactId>
            <version>0.9.5.2</version>
        </dependency>

        <!-- MyBatis -->
        <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis</artifactId>
            <version>${mybatis.version}</version>
        </dependency>

        <!-- mybatis/spring整合包 -->
        <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis-spring</artifactId>
            <version>1.3.1</version>
        </dependency>

        <!-- Spring -->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-core</artifactId>
            <version>${spring.version}</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-beans</artifactId>
            <version>${spring.version}</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context</artifactId>
            <version>${spring.version}</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-jdbc</artifactId>
            <version>${spring.version}</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-tx</artifactId>
            <version>${spring.version}</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-web</artifactId>
            <version>${spring.version}</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-webmvc</artifactId>
            <version>${spring.version}</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-test</artifactId>
            <version>${spring.version}</version>
        </dependency>

    </dependencies>

    <build>
        <finalName>FirstMaven</finalName>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <configuration>
                    <!-- 设置JDK版本 -->
                    <source>1.8</source>
                    <target>1.8</target>
                </configuration>
            </plugin>
        </plugins>
    </build>

</project>

保存后即会自动下载项目所需要的jar包。

 

 对于Maven我也只是初学皮毛,如有错漏,请不吝赐教。

 

 

 

 

posted @ 2017-07-24 09:55  Lzhong  阅读(247)  评论(0编辑  收藏  举报