一、背景
1.定位:Maven是优秀的构建工具
2.意义:自动化构建,即节约了我们每天有相当一部分时间花在编 译、运行单元测试、生成文档、打包和部署等烦琐且不起眼的时间。
3.三要素:目标(Target)、依赖(Prerequisite)和命令(Command)
4.比较:
Make,就不能实现跨平台的构建,语法复杂,难以排除一些空格、table错误
Ant,开发者显式地指定每一个目标,以及完成该目标所需要执行的任务。针对每一个项目,开发者都需要重新编写这一过程,这里其实隐含着很大的重复。没有依赖管理。
Gradle,支持动态的版本依赖,Maven和Gradle对依赖项的scope有所不同,解决依赖冲突方面Gradle的实现机制更加明确。Gradle提供了极大的灵活性,但对Build领域实践不够,就很难组织好,导致混乱和不必要。
二、安装与配置
2.步骤:下载安装包->安装->设置环境变量->检查mvn –version
 
三、使用
1.注意事项:
(1)配置用户范围settings.xml。Maven用户可以选择配置$M2_HOME/conf/settings.xml或者~/.m2/settings.xml。前者是全局范围的,整台机器上的所有用户都会直接受到该配置的影响,而后者是用户范围的,只有当前用户才会受到该配置的影响。
(2)尽量不要使用IDE内嵌的Maven
 
2.编写POM
(1)核心
Maven项目的核心是pom.xml,项目对象模型
组ID<groupId>com.zhongzh.app</groupId>  com.项目组名.项目名
模块ID<artifactId>hello-world</artifactId>  
版本<version>1.0-SNAPSHOT</version>  
名称<name>Maven Hello World Project</name> 
(2)常用标签:modules、parent、properties、import
parent指定继承父pom
父pom中指定modules
dependencyManagement元素下得依赖声明不会引入实际的依赖
dependencies元素下的实际依赖使用
properties元素用户可以自定义一个或多个Maven属性,然后在POM的其他地方使用${属性名}的方式引用该属性,这种做法的最大意义在于消除重复和统一管理。
<scope>import</scope>继承来自多个父pom的依赖
 
3.依赖管理
scope指明了junit模块只能在test中依赖
 
4.maven命令
打包 mvn clean package
安装 mvn clean install 与打包区别在于可以让其他maven工程使用
测试 mvn clean test
生成项目骨架 mvn archetype:generate
 
 
 
 

5分钟学会maven入门的更多相关文章

  1. 10分钟学会Linux

    10分钟学会Linux有点夸张,可是能够让一个新手初步熟悉Linux中最重要最主要的知识,本文翻译的英文网页在众多Linux入门学习的资料中还是很不错的. 英文地址:http://freeengine ...

  2. PHP学习过程_Symfony_(3)_整理_十分钟学会Symfony

    这篇文章主要介绍了Symfony学习十分钟入门教程,详细介绍了Symfony的安装配置,项目初始化,建立Bundle,设计实体,添加约束,增删改查等基本操作技巧,需要的朋友可以参考下 (此文章已被多人 ...

  3. 30分钟学会使用Spring Web Services基础开发

    时隔一年终于又推出了一篇30分钟系列,上一篇<30分钟学会反向Ajax>是2016年7月的事情了.时光荏苒,岁月穿梭.虽然一直还在从事Java方面的开发工作,但是私下其实更喜欢使用C++. ...

  4. maven 入门 (一)

    纠结了好久,到底要不要写一份maven入门的所谓“教程”,有好几次想写一下,但是都放弃了,因为网上的太多了,而且都很好,但是现在决定了,还是要写出来,因为者有我自己的理解.所以我想写一份教程出来. 首 ...

  5. Maven 入门指南

    为什么要用 Maven? Maven 主要帮助用户完成以下 3 个方面的工作: 生命周期管理,便捷的构建过程: 依赖管理,方便引入所需依赖 Jar 包: 仓库管理,提供统一管理所有 Jar 包的工具: ...

  6. Maven入门指南

    Maven入门指南 本指南旨在第一次为使用Maven的人员提供参考,但也打算作为一本包含公共用例的独立参考和解决方案的工具书.对于新用户,建议您按顺序浏览该材料.对于更熟悉Maven的用户,本指南致力 ...

  7. 三分钟学会使用Derby数据库

    Derby数据库是一个纯用Java实现的内存数据库,属于Apache的一个开源项目.由于是用Java实现的,所以可以在任何平台上运行:另外一个特点是体积小,免安装,java1.6开始集成了derby数 ...

  8. Maven入门详解

    什么是Maven Maven,鼎鼎大名,在今天之前,我对于它一直是处于一种"只闻其名不见其人"的状态.之所以说"只闻其名",是因为Maven太有名了,它是Apa ...

  9. 5分钟学会使用Less预编译器

    5分钟学会使用Less预编译器 Less是什么? LESS CSS是一种动态样式语言,属于CSS预处理语言的一种,它使用类似CSS的语法为CSS赋予了动态语言的特性,如变量.继承.运算.函数等,更方便 ...

随机推荐

  1. jupyter lab 报错

    C:\Users\WQBin>jupyter lab [I :: kernels found [I :: No cio_test package found. [I ::45.137 LabAp ...

  2. gRPC应用实践

    What is RPC? Remote Procedure Call is a high-level model for client-server communication. Assume the ...

  3. Java-ConnectDB工具类

    import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; /** * 功能描述: ...

  4. nodejs+mysql 批量更新

    没办法,只能通过循环一次次更新: var updateMysql = function(){ data = excel[0].data; for(var i=1; i<data.length; ...

  5. JavaScript关系运算符

    ★关系运算符 通过关系运算符可以比较两个值之间的大小关系 如果关系成立它会返回true,如果关系不成立立即返回false   ㈠大于号 (>) ⑴判断符号左侧的值是否大于右侧的值 ⑵如果关系成立 ...

  6. python学习用到的网站

    官方地址:https://www.python.org/ 玩蛇网:http://www.iplaypython.com/

  7. MessagePack Java Jackson Dataformat 不使用 str8 数据类型的序列化

    老的 msgpack-java(例如 0.6.7)并不支持 MessagePack str8 数据类型. 当你的希望的你的应用程序需要支持老的版本的话,你需要禁用这个数据类型,例如使用下面的语句: M ...

  8. Codevs 1519 过路费(Mst+Lca)

    1519 过路费 时间限制: 1 s 空间限制: 256000 KB 题目等级 : 大师 Master 题目描述 Description 在某个遥远的国家里,有 n个城市.编号为 1,2,3,-,n. ...

  9. Centos 7禁止ftdi_sio模块

    $ dmesg[ 3305.097301] usb 1-1: USB disconnect, device number 7[ 3306.883704] usb 1-1: new high-speed ...

  10. npm脚本编译代码

    echo offset codeUrl=D:\svn\oppo_mis\OCSS_NEW\Branches\ProjectCode20190909\h5_ocssset publishUrl=D:\P ...