maven 从入门到实战

1.什么是Maven

我们要开发一个Java 项目,为了保证编译通过, 通常情况下会去寻找jar包,这样很容易造成项目的臃肿, maven提供了很好的项目开发规范与工具, maven 统一管理了jar包,接下来让我们来玩玩maven吧


2.安装Maven


Maven 是Apache 基金会的顶级项目, 我们可以从http://maven.apache.org/ 下载一个apache-maven-3.0.4-bin.zip 文件,将其解压到D:/maven 目录下

这里需要配置一下环境变量:

  • M2_HOME=D:/maven;

  • MAVEN_OPTS=-Xms128m  -Xmx512m

    以上M2_HOME 是必要配置的, 如果想要Maven跑的快一点, 可以根据自己的情况设置MAVEN_OPTS

现在我们可以打开cmd,输入:

mvn -v

看到一下信息说明 Maven 安装成功了


3.Maven 仓库

Maven给我们带来最直接的帮助就是jar 包得到了统一的管理, 这些jar包存在本地仓库,位于C:.m2目录下(也可以通过maven\conf\setting.xml 修改默认地址)

实际上本地仓库可以理解为缓存, 因为项目会先从本地仓库中获取jar包, 当无法获取指定jar包的时候,本地仓库会从远程仓库中下载jar包, 并放入本地仓库中,以备将来使用, 这个远程仓库是Maven官方提供的, 可以通过访问 (http://search.maven.org/ ),通过图A-1 可以清晰的表达项目,本地仓库,远程仓库之间的关系.



4.创建Maven项目

我们创建一个Java Web项目,在cmd 中输入:

mvn archetype:generate

我们创建的Java Web项目,所以可以选择maven-archetype-webapp, 通过maven可以知道以下信息:


  • 项目groupId(组织名)-可输入com.smart 域名的反转

  • 项目artifactId(构件名)-可输入smart

  • 项目version(版本号)-可输入1.0

  • 项目package(包名)-可输入com.smart

也可以使用IDEA 直接创建一个maven项目,只需要选择File-New-Project,如下图所示:


5.理解POM结构

当打开pom.xml, 格式化以后是这样的:

<?xml version="1.0" encoding="UTF-8"?>
<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>

    <groupId>com.smart</groupId>
    <artifactId>smart</artifactId>
    <version>1.0.0</version>
    <packaging>war</packaging>

    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <junit.version>4.11</junit.version>
    </properties>

    <dependencies>
        <!--junit-->
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>${junit.version}</version>
            <scope>test</scope>
        </dependency>
    </dependencies>
    
    <build>
    <plugins>
        <!--compile-->
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>${maven.compile.version}</version>
            <configuration>
                <source>${java.version}</source>
                <target>${java.version}</target>
            </configuration>
        </plugin>

        <!--maven 打包时想跳过单元测试-->
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-surefire-plugin</artifactId>
            <version>2.18.1</version>
            <configuration>
                <skipTests>true</skipTests>
            </configuration>
        </plugin>

        <!--tomcat-->
        <plugin>
            <groupId>org.apache.tomcat.maven</groupId>
            <artifactId>tomcat7-maven-plugin</artifactId>
            <version>2.2</version>
            <configuration>
                <path>/${project.artifactId}</path>
            </configuration>
        </plugin>
    </plugins>
</build>

简单介绍一下:

  • modelVersion 是POM的版本号,现在是4.0.0, 默认的不需要修改

  • groupId,artifactId,version分别代表Maven项目的组织名,构件名,版本号,它们三个是Maven坐标

  • packaging表示该项目的打包方式,war表示打包为war文件,默认为jar,表示打包为jar文件

  • dependencies定义该项目的依赖关系

  • build表示与构件相关的配置

通过IDEA可以很清晰的看到POM结构图:

maven 从入门到实战_第1张图片

每个pom.xml都应该有:


  • Lifecycle-生命周期

  • Plugins-插件

  • Dependencied-依赖

pom.xml文件中会有一个scope作用域, 包括以下几种:


  • compile-默认作用域 编译 测试 运行时有效

  • test-测试时有效

  • runtime-运行时有效

  • provided-编译 测试有效 运行时无效

  • system-与provided类似 但依赖于系统资源

6.使用Maven命令

maven 常用的命令有:

  • mvn clean-清空target目录

  • mvn compile-编译源代码

  • mvn package-生成构件包 一般为jar或者war包

  • mvn install-将构件包安装到本地仓库

  • mvn deploy-将构件包部署到远程仓库

  • mvn tomcat:run-通过maven运行项目

  • mvn dependency:sources-从本地仓库获取源代码

7.后记

关于maven在实际项目的实战 后续会慢慢添加,下一次我会介绍一下如何将构件发布到Maven中央仓库


你可能感兴趣的:(maven,实战)