文档章节

maven 从入门到实战

陈小扁
 陈小扁
发布于 2016/02/25 17:23
字数 1060
阅读 127
收藏 0

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结构图:

每个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 -N -将构件包部署到远程仓库

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

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

  • mvn -X compile - debug模式编译项目

  • mvn clean install -DskipTests -U

7.后记

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

 

© 著作权归作者所有

共有 人打赏支持
陈小扁

陈小扁

粉丝 50
博文 87
码字总数 70963
作品 0
浦东
高级程序员
推荐csdn里的几篇activiti基础入门及提高的博客

昨天有个网友加qq询问我有没有非maven搭建的activiti项目的demo,因为我博客中写了一个用maven,我当时没有,于是晚上回家尝试了一下,结果比较容易就实现了。 之后和那个网友聊了一下,他说...

涂宗勋
2016/04/20
338
0
Maven 入门引导

weblog 里有很多精彩的文章,大部分都是关于某项技术的个人解释和感想,这样是很好,也是 blog 文章的主要方式,其实还有一种很好的方式就是告送后来人,你的学习历程,比如:你是怎么学习一...

青夜之衫
2017/12/08
0
0
《Spring Boot 2.x 核心技术实战 上 基础篇》第 1 章 Spring Boot 入门

《Spring Boot 2.x 核心技术实战 上 基础篇》第 1 章 Spring Boot 入门 泥瓦匠BYSocket2017-09-2912 阅读 SpringJava技术 《Spring Boot 2.x 核心技术实战 上 基础篇》样章 请大家耐心等候或...

泥瓦匠BYSocket
2017/09/29
0
0
Maven 入门引导

weblog 里有很多精彩的文章,大部分都是关于某项技术的个人解释和感想,这样是很好,也是 blog 文章的主要方式,其实还有一种很好的方式就是告送后来人,你的学习历程,比如:你是怎么学习一...

唐玄奘
2017/12/03
0
0
Java视频网盘分享

Java教程视频分享 1、JavaScript视频教程 链接: http://pan.baidu.com/s/1gd57FVH 密码: d9ei 2、JPA视频教程 链接: http://pan.baidu.com/s/1dDCx1fj 密码: fwwd 3、马士兵hibernate视频教程...

PXZ6603
2017/04/26
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Redis的API应用

全局命令 1,查看所有键:keys * set school dongnao set hello world 2,键总数 dbsize //2个键,如果存在大量键,线上禁止使用此指令 3,检查键是否存在:exists key //存在返回1,不存在返...

这很耳东先生
9分钟前
0
0
Java GC机制详解

垃圾收集 Garbage Collection 通常被称为“GC”,本文详细讲述Java垃圾回收机制。 导读: 1、什么是GC 2、GC常用算法 3、垃圾收集器 4、finalize()方法详解 5、总结--根据GC原理来优化代码 ...

编程SHA
12分钟前
0
0
CMD 乱码永久解决方案

创建cmd.reg,内容如下,双击运行导入注册表。 Windows Registry Editor Version 5.00[HKEY_CURRENT_USER\Console\%SystemRoot%_system32_cmd.exe]"CodePage"=dword:0000fde9"FontFamil......

yeahlife
15分钟前
0
0
亿级Web系统搭建:单机到分布式集群

当一个Web系统从日访问量10万逐步增长到1000万,甚至超过1亿的过程中,Web系统承受的压力会越来越大,在这个过程中,我们会遇到很多的问题。为了解决这些性能压力带来问题,我们需要在Web系统...

onedotdot
18分钟前
0
0
Linux 命令优先级 —— alias、function、内部命令(make)

Linux 命令优先级 —— alias、function、内部命令(make) make 新建Makefile文件,在里面输入如下内容; # Makefile内容all:@echo "Make Command echo : Hello " 保存,执行 which make ,...

雪落青山
19分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部