(转)Maven使用
1.简介
MAVEN是Apache开源组织中的一个跨平台的项目管理工具。
主要功能有项目构建、依赖管理以及项目信息管理。
2.项目构建
项目构建指的是编译、运行单元测试、生成文档、打包、部署等一系列动作。
MAVEN将项目构建过程抽象成为构建生命周期模型,将构建过程中有序的构建任务抽象为构建生命周期阶段,
并且通过1-N个插件目标来具体实现构建生命周期阶段的操作。
3.依赖管理
MAVEN通过一个坐标系统准确地定位每一个构件(JAR文件等)。
4.项目信息管理
MAVEN还能帮助我们管理原本分散在项目各个角落的项目信息,包括项目描述、开发者列表等。
5.其余
1)中央仓库
Maven提供了一个免费的中央仓库,里面几乎包含了所有的流行开源库,十分方便。
2)衍生工具Nexus
Nexus可用于创建私服,也就是局域网仓库,亦可用于检索第三方库坐标,从而提高效率。
3)约定优于配置
Maven对于项目目录结构、测试用例命名方式等内容都有既定的规则,只要遵循了这些规则,
用户在项目间切换的时候就免去了额外的学习成本。
6.参考文档
《MAVEN实战》
1.安装要求
JDK5及以上版本
2.下载MAVEN安装包
下载地址:http://maven.apache.org/download.html
安装过程如下:
1)解压ZIP文件
2)配置系统环境变量M2_HOME,指向MAVEN的安装目录
3)系统环境变量PATH中增加%M2_HOME%\bin
4)新开一个CMD窗口,输入MVN -V进行安装验证
3.安装目录分析
|--bin
主要包含一些mvn运行脚本
|--boot
包含类加载器框架
|--conf
本地全局定制Maven的配置文件setting.xml,不过建议不做修改
|--lib
包含了Maven运行时需要的JAVA类库
并且可以在maven-model-builder-3.0.4.jar\org\apache\maven\model中找到超级POM文件
|-LICENSE.TXT
|-NOTICE.TXT
|-README.TXT
4.安装ECLIPSE插件(也可以采用离线的方式安装该插件)
1)安装地址:http://m2eclipse.sonatype.org/sites/m2e
2)安装后设置MAVEN的安装路径,而不要使用插件自带的MAVEN
Window->Preferences->MAVEN->Installations
5.MAVEN_OPTS环境变量
由于Maven命令实际上是执行了Java命令,所以可以通过JAVA命令参数的方式来设置MAVEN运行参数。
MAVEN_OPTS环境变量正是用于此用途
MAVEN_OPTS
-Xms128m -Xmx512m
分别设置JVM的最小和最大内存
提示:上诉要求当然可以通过修改Maven脚本实现,但是不推荐,因为升级时不方便,
所以推荐尽可能不去修改任何Maven安装目录下的文件。
1.简介
本文将介绍如何使用Eclipse的Maven插件来创建一简单的Maven项目,以及在Eclipse中运行Maven命令。
2.步骤
1)打开新建项目对话框,选择Maven Project(File->New->Object->Maven->Maven Project)

2)不好选择Simple Project,从而可以选择项目的archetype

3)选择名为quickstart的Archetype,点击Next(这里可以参考用eclipse创建maven项目)
Archetype:项目骨架,项目的目录和文件结构

4)输入Group Id,Artifact Id信息,Version默认为0.0.1-SNAPSHOT,Package会根据Group Id和Artifact Id自动生成
Group Id:项目所属的项目组
Artifact Id:项目在项目组中的ID
Version:项目的版本号,后缀SNASHOT为快照的意思,表示版本不稳定

5)由于通过quickstart来创建项目时会默认生成一个App.java和一个AppTest.java文件,我们可以直接运行Maven命令
选中项目->Run As->Maven Test

运行结果:
- [INFO] Scanning for projects...
- [INFO]
- [INFO] ------------------------------------------------------------------------
- -SNAPSHOT
- [INFO] ------------------------------------------------------------------------
- [INFO]
- [INFO] --- maven-resources-plugin:2.5:resources (default-resources) @ firstmvn ---
- [debug] execute contextualize
- [INFO] Using 'UTF-8' encoding to copy filtered resources.
- [INFO] <span style="color: #ff0000;">skip non existing resourceDirectory F:\workspace\firstmvn\src\main\resources</span>
- [INFO]
- :compile (default-compile) @ firstmvn ---
- [INFO] <span style="color: #ff0000;">Nothing to compile - all classes are up to date</span>
- [INFO]
- [INFO] --- maven-resources-plugin:2.5:testResources (default-testResources) @ firstmvn ---
- [debug] execute contextualize
- [INFO] Using 'UTF-8' encoding to copy filtered resources.
- [INFO]<span style="color: #ff0000;"> skip non existing resourceDirectory F:\workspace\firstmvn\src\test\resources</span>
- [INFO]
- :testCompile (default-testCompile) @ firstmvn ---
- [INFO]<span style="color: #ff0000;"> Nothing to compile - all classes are up to date</span>
- [INFO]
- [INFO] --- maven-surefire-plugin:2.10:test (default-test) @ firstmvn ---
- [INFO] Surefire report directory: F:\workspace\firstmvn\target\surefire-reports
- -------------------------------------------------------
- T E S T S
- -------------------------------------------------------
- Running com.siyuan.firstmvn.AppTest
- , Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.012 sec
- Results :
- , Failures: 0, Errors: 0, Skipped: 0
- [INFO] ------------------------------------------------------------------------
- [INFO] BUILD SUCCESS
- [INFO] ------------------------------------------------------------------------
- .762s
- 22:54:57 CST 2012
- [INFO] Final Memory: 4M/72M
- [INFO] ------------------------------------------------------------------------
注:第一次运行Maven可能会有更多额外的Maven插件下载信息
3.项目结构介绍

firstmvn
|--src
|--main
|--java
|--resources
|--test
|--java
|--resources
|--target
|-pom.xml
SRC:源文件目录
TARGET:编译目录
pom.xml: Project Object Model项目对象模型,定义了项目的基本信息,用于描述项目如何构建,声明依赖等等。
- <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.siyuan</groupId>
- <artifactId>firstmvn</artifactId>
- <version>0.0.1-SNAPSHOT</version>
- <packaging>jar</packaging>
- <name>firstmvn</name>
- <url>http://maven.apache.org</url>
- <properties>
- <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
- </properties>
- <dependencies>
- <dependency>
- <groupId>junit</groupId>
- <artifactId>junit</artifactId>
- <version>3.8.1</version>
- <scope>test</scope>
- </dependency>
- </dependencies>
- </project>
重要的元素:
groupId,artifactId,version,packaging
这四个元素组成了Maven的坐标,它相当为项目在Maven世界中的ID。
其中packaging默认为jar,可以为jar,pom,war等。
dependencies
项目依赖,由1到N个dependency组成,每个dependency包含了一个坐标和依赖范围scope
其中scope默认为compile,表示该依赖对主代码和测试代码都有效,
test则表示该依赖只对测试有效,即测试代码中可以使用Junit-3.8.1.jar中的内容,主代码不能使用,
其余scope将在之后介绍。
(转)Maven使用的更多相关文章
- 【分享】标准springMVC+mybatis项目maven搭建最精简教程
文章由来:公司有个实习同学需要做毕业设计,不会搭建环境,我就代劳了,顺便分享给刚入门的小伙伴,我是自学的JAVA,所以我懂的.... (大图直接观看显示很模糊,请在图片上点击右键然后在新窗口打开看) ...
- 理解Maven中的SNAPSHOT版本和正式版本
Maven中建立的依赖管理方式基本已成为Java语言依赖管理的事实标准,Maven的替代者Gradle也基本沿用了Maven的依赖管理机制.在Maven依赖管理中,唯一标识一个依赖项是由该依赖项的三个 ...
- 【微框架】Maven +SpringBoot 集成 阿里大鱼 短信接口详解与Demo
Maven+springboot+阿里大于短信验证服务 纠结点:Maven库没有sdk,需要解决 Maven打包找不到相关类,需要解决 ps:最近好久没有写点东西了,项目太紧,今天来一篇 一.本文简介 ...
- 安装eclipse的maven插件
我们团队用maven来管理项目需要的库文件,其实以前都没听过maven,第一次接触这个,师兄要我直接去装下这个,开始以为还挺简单的,没想到中间遇到了一些小麻烦,现在把我成功安装maven的过程分享下, ...
- MAVEN学习-第一个Maven项目的构建
MAVEN安装成功之后就可以进行项目的构建和管理了: 为什么要用maven进行项目的构建和管理? 对于初学者来说一个最直接的也是最容易里的优点在于JAR包的管理,相对于以前开发一个项目的时候我们需要用 ...
- Maven 代理设置
在maven的安装目录下 %MAVEN_HOME%/conf/setting.xml 中进行设置 <proxies> <!-- proxy | Specificatio ...
- spring maven pom.xml设置
spring pom.xml设置 <?xml version="1.0" encoding="UTF-8"?> <project xmlns= ...
- maven依赖查询地址
http://search.maven.org/#search%7Cga%7C1%7C
- maven 中snapshot版本和release版本的区别
maven中的仓库分为两种,snapshot快照仓库和release发布仓库.snapshot快照仓库用于保存开发过程中的不稳定版本,release正式仓库则是用来保存稳定的发行版本.定义一个组件/模 ...
- Maven多模块,Dubbo分布式服务框架,SpringMVC,前后端分离项目,基础搭建,搭建过程出现的问题
现互联网公司后端架构常用到Spring+SpringMVC+MyBatis,通过Maven来构建.通过学习,我已经掌握了基本的搭建过程,写下基础文章为而后的深入学习奠定基础. 首先说一下这篇文章的主要 ...
随机推荐
- EF Core学习Code First
下面通过实例来学习EF Core Code First,也就是通过EF Core迁移来完成从模型生成数据库. 本实例使用EntityFrameworkCore SQLite 数据库进行介绍,大家也可以 ...
- mac sourcetree启用外部合并工具(beyond compare)
设置步骤及遇到的问题: 一.在sourcetree中设置diff为外部工具. 1.步骤:打开sourcetree偏好设置的diff菜单. 2.问题:发现sourcetree偏好中的"外部代码 ...
- GIS与水文分析(1)GIS与水文学
GIS与水文分析(1)GIS与水文学 对于大部分GIS从业人员或者利用GIS作为研究方向的人员来说,水文学过于专业,更偏重于理论化,很难从GIS的角度来模拟和分析水文的过程.这其实是个普遍性的问题,任 ...
- octomap中3d-rrt路径规划
路径规划 碰撞冲突检测 在octomap中制定起止点,目标点,使用rrt规划一条路径出来,没有运动学,动力学的限制,只要能避开障碍物. 效果如下: #include "ros/ros.h&q ...
- Linux网络服务10——远程访问及控制
Linux网络服务10--远程访问及控制 一.SSH概述 1.SSH简介 SSH(Secure Shell)是一种安全通道协议,主要用来实现字符界面的远程登录.远程复制等功能.SSH协议对通信双方的数 ...
- GitHub:多人协作下的分支处理
GitHub上的团队协作 远程信息 git remote:查看远程库的信息 git remote -v:查看远程库的详细信息 推送分支 git push origin 要推送的分支:比如git pus ...
- 愚公oracle数据库同步工具
最近,利用一些时间对oracle数据库实时同步工具做了一些调研分析,主要关注了linkedin的databus和阿里的yugong两个中间件,其中databus需要在每个待同步的表上增加额外的列和触发 ...
- VMware-VCSA-6.5安装过程
1.新建虚拟机 2.选择从OVF或OVA文件导入 3.给虚拟机命名,并选择OVF文件. 4.选择虚拟机的存储位置.这里没有配置共享存储宿,这里选择的宿主机的存储. 5.许可协议同意就OK了. 6.部署 ...
- js对象中动态读取属性值 动态属性值 js正则表达式全局替换
$(document).ready(function(){ var exceptionMsg = '${exception.message }'; var exceptionstr = ''; //j ...
- 将百度坐标转换的javascript api官方示例改写成传统的回调函数形式
改写前: 百度地图中坐标转换的JavaScript API示例官方示例如下: var points = [new BMap.Point(116.3786889372559,39.90762965106 ...