MAVEN3--(一)关于MAVEN

博客分类:

 

1.简介

MAVEN是Apache开源组织中的一个跨平台的项目管理工具。

主要功能有项目构建、依赖管理以及项目信息管理。

2.项目构建

项目构建指的是编译、运行单元测试、生成文档、打包、部署等一系列动作。

MAVEN将项目构建过程抽象成为构建生命周期模型,将构建过程中有序的构建任务抽象为构建生命周期阶段,

并且通过1-N个插件目标来具体实现构建生命周期阶段的操作。

3.依赖管理

MAVEN通过一个坐标系统准确地定位每一个构件(JAR文件等)。

4.项目信息管理

MAVEN还能帮助我们管理原本分散在项目各个角落的项目信息,包括项目描述、开发者列表等。

5.其余

1)中央仓库

Maven提供了一个免费的中央仓库,里面几乎包含了所有的流行开源库,十分方便。

2)衍生工具Nexus

Nexus可用于创建私服,也就是局域网仓库,亦可用于检索第三方库坐标,从而提高效率。

3)约定优于配置

Maven对于项目目录结构、测试用例命名方式等内容都有既定的规则,只要遵循了这些规则,

用户在项目间切换的时候就免去了额外的学习成本。

6.参考文档

《MAVEN实战》

MAVEN3--(二)安装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

运行结果:

  1. [INFO] Scanning for projects...
  2. [INFO]
  3. [INFO] ------------------------------------------------------------------------
  4. -SNAPSHOT
  5. [INFO] ------------------------------------------------------------------------
  6. [INFO]
  7. [INFO] --- maven-resources-plugin:2.5:resources (default-resources) @ firstmvn ---
  8. [debug] execute contextualize
  9. [INFO] Using 'UTF-8' encoding to copy filtered resources.
  10. [INFO] <span style="color: #ff0000;">skip non existing resourceDirectory F:\workspace\firstmvn\src\main\resources</span>
  11. [INFO]
  12. :compile (default-compile) @ firstmvn ---
  13. [INFO] <span style="color: #ff0000;">Nothing to compile - all classes are up to date</span>
  14. [INFO]
  15. [INFO] --- maven-resources-plugin:2.5:testResources (default-testResources) @ firstmvn ---
  16. [debug] execute contextualize
  17. [INFO] Using 'UTF-8' encoding to copy filtered resources.
  18. [INFO]<span style="color: #ff0000;"> skip non existing resourceDirectory F:\workspace\firstmvn\src\test\resources</span>
  19. [INFO]
  20. :testCompile (default-testCompile) @ firstmvn ---
  21. [INFO]<span style="color: #ff0000;"> Nothing to compile - all classes are up to date</span>
  22. [INFO]
  23. [INFO] --- maven-surefire-plugin:2.10:test (default-test) @ firstmvn ---
  24. [INFO] Surefire report directory: F:\workspace\firstmvn\target\surefire-reports
  25. -------------------------------------------------------
  26. T E S T S
  27. -------------------------------------------------------
  28. Running com.siyuan.firstmvn.AppTest
  29. , Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.012 sec
  30. Results :
  31. , Failures: 0, Errors: 0, Skipped: 0
  32. [INFO] ------------------------------------------------------------------------
  33. [INFO] BUILD SUCCESS
  34. [INFO] ------------------------------------------------------------------------
  35. .762s
  36. 22:54:57 CST 2012
  37. [INFO] Final Memory: 4M/72M
  38. [INFO] ------------------------------------------------------------------------

注:第一次运行Maven可能会有更多额外的Maven插件下载信息

3.项目结构介绍

firstmvn

|--src

|--main

|--java

|--resources

|--test

|--java

|--resources

|--target

|-pom.xml

SRC:源文件目录

TARGET:编译目录

pom.xml: Project Object Model项目对象模型,定义了项目的基本信息,用于描述项目如何构建,声明依赖等等。

  1. <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  2. xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  3. <modelVersion>4.0.0</modelVersion>
  4. <groupId>com.siyuan</groupId>
  5. <artifactId>firstmvn</artifactId>
  6. <version>0.0.1-SNAPSHOT</version>
  7. <packaging>jar</packaging>
  8. <name>firstmvn</name>
  9. <url>http://maven.apache.org</url>
  10. <properties>
  11. <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
  12. </properties>
  13. <dependencies>
  14. <dependency>
  15. <groupId>junit</groupId>
  16. <artifactId>junit</artifactId>
  17. <version>3.8.1</version>
  18. <scope>test</scope>
  19. </dependency>
  20. </dependencies>
  21. </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使用的更多相关文章

  1. 【分享】标准springMVC+mybatis项目maven搭建最精简教程

    文章由来:公司有个实习同学需要做毕业设计,不会搭建环境,我就代劳了,顺便分享给刚入门的小伙伴,我是自学的JAVA,所以我懂的.... (大图直接观看显示很模糊,请在图片上点击右键然后在新窗口打开看) ...

  2. 理解Maven中的SNAPSHOT版本和正式版本

    Maven中建立的依赖管理方式基本已成为Java语言依赖管理的事实标准,Maven的替代者Gradle也基本沿用了Maven的依赖管理机制.在Maven依赖管理中,唯一标识一个依赖项是由该依赖项的三个 ...

  3. 【微框架】Maven +SpringBoot 集成 阿里大鱼 短信接口详解与Demo

    Maven+springboot+阿里大于短信验证服务 纠结点:Maven库没有sdk,需要解决 Maven打包找不到相关类,需要解决 ps:最近好久没有写点东西了,项目太紧,今天来一篇 一.本文简介 ...

  4. 安装eclipse的maven插件

    我们团队用maven来管理项目需要的库文件,其实以前都没听过maven,第一次接触这个,师兄要我直接去装下这个,开始以为还挺简单的,没想到中间遇到了一些小麻烦,现在把我成功安装maven的过程分享下, ...

  5. MAVEN学习-第一个Maven项目的构建

    MAVEN安装成功之后就可以进行项目的构建和管理了: 为什么要用maven进行项目的构建和管理? 对于初学者来说一个最直接的也是最容易里的优点在于JAR包的管理,相对于以前开发一个项目的时候我们需要用 ...

  6. Maven 代理设置

    在maven的安装目录下 %MAVEN_HOME%/conf/setting.xml 中进行设置 <proxies>    <!-- proxy     | Specificatio ...

  7. spring maven pom.xml设置

    spring pom.xml设置 <?xml version="1.0" encoding="UTF-8"?> <project xmlns= ...

  8. maven依赖查询地址

    http://search.maven.org/#search%7Cga%7C1%7C

  9. maven 中snapshot版本和release版本的区别

    maven中的仓库分为两种,snapshot快照仓库和release发布仓库.snapshot快照仓库用于保存开发过程中的不稳定版本,release正式仓库则是用来保存稳定的发行版本.定义一个组件/模 ...

  10. Maven多模块,Dubbo分布式服务框架,SpringMVC,前后端分离项目,基础搭建,搭建过程出现的问题

    现互联网公司后端架构常用到Spring+SpringMVC+MyBatis,通过Maven来构建.通过学习,我已经掌握了基本的搭建过程,写下基础文章为而后的深入学习奠定基础. 首先说一下这篇文章的主要 ...

随机推荐

  1. Elasticsearch VS Solr

    最近公司用到了ES搜索引擎,调研发现大公司常用的搜索引擎还有Solr. 鉴于 Lucene 强大的特性和稳定性,有很多种基于 Lucene 封装的企业级搜索平台.其中最流行有两个:Apache Sol ...

  2. javascript对象转换,动态属性取值

    $(document).ready(function(){ var exceptionMsg = '${exception.message }'; var exceptionstr = ''; //j ...

  3. 进入MVC处理通道

    这一篇主要讲如何通过Asp.net处理管道把请求交给MVC进行处理的(进入MVC处理通道). 首先来看一下经典的Asp.net处理管道的生命周期. 我们知道一个ASP.NET应用程序可以有多个Http ...

  4. JAVAEE——spring02:使用注解配置spring、sts插件、junit整合测试和aop演示

    一.使用注解配置spring 1.步骤 1.1 导包4+2+spring-aop 1.2 为主配置文件引入新的命名空间(约束) 1.3 开启使用注解代替配置文件 1.4 在类中使用注解完成配置 2.将 ...

  5. [leetcode-357-Count Numbers with Unique Digits]

    Given a non-negative integer n, count all numbers with unique digits, x, where 0 ≤ x < 10n. Examp ...

  6. Mathematica学习笔记2

    导入文件中的矩阵 mat = Import["...", "Table"] 转化为向量矩阵(元素为数对) data = Table[{mat[[i, j]], ...

  7. 分页插件Jpages的使用

    项目原因需要前端做分页表格,之前做了一个ul的分页效果,但是感觉自己写还是造轮子了,今天网上看到Jpqges插件就试了下,感觉平时使用挺方便的,写一下自己的使用过程. 先上套图,下载下来就2个js和1 ...

  8. Unity应用架构设计(12)——AOP思想的实践

    想象一下,当程序所有的业务逻辑都完成的时候,你可能还来不及喘口气,紧张的测试即将来临.你的Boss告诉你,虽然程序没问题,但某些方法为什么执行这么慢,性能堪忧.领会了Boss的意图之后,漫长的排查问题 ...

  9. (cljs/run-at (JSVM. :browser) "简单类型可不简单啊~")

    前言  每逢学习一个新的语言时总要先了解这门语言支持的数据类型,因为数据类型决定这门语言所针对的问题域,像Bash那样内置只支持字符串的脚步明显就是用于文本处理啦.而数据类型又分为标量类型(Scala ...

  10. Java数据类型在实际开发中的应用二枚举类型

    在实际编程中,往往存在着这样的"数据集",它们的数值在程序中是稳定的,而且"数据集"中的元素是有限的.在JDK1.5之前,人们用接口来描述这一种数据类型. 1. ...