Maven 教程

序:几次对Maven 的学习,都因为各种原因 而中途切断了,再一次学习的时候,又不得不重新开始,结果发现 又不记得步骤 又找不到对应的文档。别人写的再好,终究比不过自己亲手实践的得出的结果更值得相信!

在 windows 环境上的 安装与实例实践 操作步骤 和 结果记录如下:

一、Maven 安装

1、Maven 的下载

下载地址 http://maven.apache.org/download.cgi

选择对应的版本下载,这里 我使用 apache-maven-3.3.3-bin.zip,将其解压放到对应安装路径下即可

配置 对应的环境变量: MAVEN_HOME = 安装路径

Path  中新增 %MAVEN_HOME%/bin

2、安装对应的JDK

Maven 3.3 需要 jdk 1.7 及以上版本。

配置 对应的环境变量: JAVA_HOME = 安装路径

Path  中新增 %JAVA_HOME %/bin

3、修改配置文件

%MAVEN_HOME%/conf/setting.xml  配置文件中 localRepository 存放了 maven 所依赖的 jar,默认 路径是 ${user.home}/.m2/repository ,即用户家目录下,建议修改到其他位置,如下面,我的配置:

二、Maven 运行项目

1、检测mvn 是否安装成功: mvn -v

如果你看到类似上面的输出的话,就说明安装成功了。

2、建立一个hello 项目

切换到你希望项目建立的目录: cd F:\softwareInstallLocation\eclipse_workspace

新建项目:mvn archetype:generate -DgroupId=co

m.mycompany.helloworld -DartifactId=helloworld -Dpackage=com.mycompany.helloworl

d -Dversion=1.0-SNAPSHOT

说明:第一次 运行 Maven 可能比较耗时间,因为需要 下载 maven 需要的相关 jar 包,第二次运行的时候 就不会需要下载了的。在命令执行的过程中,可能有几处需要输入,直接按回车就好,这样就完成项目的建立。(详情见apache Maven 入门篇(上) )

archetype:generate 目标会列出一系列的 archetype 让你选择。 Archetype 可以理解成项目的模型。 Maven 为我们提供了很多种的项目模型,包括从简单的 Swing 到复杂的 Web 应用。我们选择默认的 maven-archetype-quickstart

3、在项目路径下,我们可以看到多了一个工程

maven 的 archetype 插件建立了一个 helloworld 目录,这个名字来自 artifactId 。在这个目录下面,有一个 Project Object Model(POM) 文件 pom.xml 。这个文件用于描述项目,配置插件和管理依赖关系。

源代码和资源文件放在 src/main 下面,而测试代码和资源放在 src/test 下面。

Maven 已经为我们建立了一个 App.java 文件:

4、构建 和运行程序

命令如下:

进入当期项目:  cd helloworld

构建项目:      mvn package

运行 :  java -cp target/helloworld-1.0-SNAPSHOT.jar com.mycompany.helloworld.App

编辑并测试: mvn test

说明:

maven 在 helloworld 下面建立了一个新的目录 target/ ,构建打包后的 jar 文件 helloworld-1.0-SNAPSHOT.jar 就存放在这个目录下。编译后的 class 文件放在 target/classes/ 目录下面,测试 class 文件放在 target/test-classes/ 目录下面。

三、Maven 常用命令

创建一个简单的Java工程:mvn archetype:create -DgroupId=com.mycompany.example -DartifactId=Example

创 建一个java的web工程:mvn archetype:create -DarchetypeGroupId=org.apache.maven.archetypes -DarchetypeArtifactId=maven-archetype-webapp -DgroupId=com.mycompany.app -DartifactId=my-webapp

打包:mvn package

编译:mvn compile

编译测试程序:mvn test-compile

清空:mvn clean

运行测试:mvn test

生成站点目录: mvn site

生成站点目录并发布:mvn site-deploy

安装当前工程的输出文件到本地仓库: mvn install

安 装指定文件到本地仓库:mvn install:install-file -DgroupId=<groupId> -DartifactId=<artifactId> -Dversion=1.0.0 -Dpackaging=jar -Dfile=<myfile.jar>

查看实际pom信息: mvn help:effective-pom

分析项目的依赖信息:mvn dependency:analyze 或 mvn dependency:tree

跳过测试运行maven任务:    mvn -Dmaven.test.skip=true XXX

生成eclipse项目文件: mvn eclipse:eclipse

查看帮助信息:mvn help:help 或 mvn help:help -Ddetail=true

查看插件的帮助信息:mvn <plug-in>:help,比如:mvn dependency:help 或 mvn ant:help 等等。

四、Maven的基本功能

构建:比如生成class、jar、war或者ear文件

生成文档:比如生成javadoc、网站文档

生成报告:比如junit测试报告

生成依赖类库:生成文档,说明项目多其他软件的依赖

有关SCM:SCM(Software Configuration Management),软件配置管理,比如版本控制,比如bug管理等等

发布:生成供发布的分发包,比如生成Struts2的分发包,供提交给用户使用

部署:比如,web应用程序,自动部署到指定的服务器上

 

五、pom.xml文件中的标签元素说明

·project                这是所有pom.xml的顶层
·modelVersion   这个元素指出POM现在使用的对象模型版本,除非开发者强制性的为了
                                 确保稳定性而进行的必要改变、一般都是不发生变化的。
·groupId               这个就是指出被被创建项目的唯一标识、通常使用域名。
·artifactId            这个元素指出了生成项目时的唯一主要的的名字、通常这个名字被作为
                                  Jar的名字。
·packaging          打包类型 (e.g. JAR, WAR, EAR, etc.). 这个不仅仅意味着打包的产品类型
                                  也指出了一个建造过程中的详细生命周期。
·version                这个元素指出在项目被生成的时候的版本,通常你所看到的
                                  SNAPSHOT指的是开发进行的状态
·name                   这个元素指出项目相识的名字、通常被用在Maven生成的文档中
·url                        这个元素指出在哪里可以找到这个项目的站点、通常也被用到Maven的
                                  文档中。
·description          这个元素为你的项目提供一个基本的描述,通常被用在Maven生成的文
                                  档中

六、资料参考

1、apache Maven 入门篇(上)

2、apache Maven 入门篇(下)

3、见官方网站

The 5 minute test,官方简易入门文档;

Getting Started Tutorial,官方入门文档;

Build Cookbook,官方的cookbook;

POM Reference,POM文件的设置参考

Settings Reference ,settings文件的设置参考

 

 maven快速搭建步骤——在Eclipse 中运行

 [原创]Mybatis + SpringMVC  + Maven实现分页查询

Maven 教程的更多相关文章

  1. Maven教程

    找了一个很详细的maven教程 收藏下 学习网址:http://www.yiibai.com/maven/

  2. maven教程全攻略

    maven教程全攻略 我们在开发项目的过程中,会使用一些开源框架.第三方的工具等等,这些都是以jar包的方式被项目所引用,并且有些jar包还会依赖其他的jar包,我们同样需要添加到项目中,所有这些相关 ...

  3. Maven教程4(私服-nexus)

    仓库管理器也叫私服或代理仓库 仓库管理器有两个服务目的:首先它的角色是一个高度可配置的介于你的组织与公开Maven仓库之间的代理,其次它为你的组织提供了一个可部署你组织内部生成的构件的地方. 1Nex ...

  4. Maven教程2(Eclipse配置及maven项目)

    Maven教程1(介绍安装和配置) Eclipse中配置maven 1.Eclipse中默认集成的有Maven 可以使用默认的,本地仓库在当前用户下的.m2文件夹下. 2.配置我们自己安装的maven ...

  5. Maven教程3(依赖管理)

    Maven教程2(Eclipse配置及maven项目) Maven项目,依赖,构建配置,以及构件:所有这些都是要建模和表述的对象.这些对 象通过一个名为项目对象模型(Project Object Mo ...

  6. myeclipse使用maven教程

    本教程包括 1.使用myeclipse构建maven下载jar包 2.使用myeclipse运行maven命令 3.使用myeclipse管理maven项目 搭建maven教程以后有时间了贴进来. 1 ...

  7. Java-Maven-Runoob:Maven教程

    ylbtech-Java-Maven-Runoob:Maven教程 1.返回顶部 1. Maven 教程 Maven 翻译为"专家"."内行",是 Apache ...

  8. Maven教程:tutorialspoint-maven

    来自turorialspoint的Maven教程(英文),官网:http://www.tutorialspoint.com/maven/index.htm 这个教程在国内已经被翻译成中文,官网:htt ...

  9. Maven教程(转载)

    转载自:http://www.yiibai.com/maven/ Apache Maven是一个软件项目管理和综合工具.基于项目对象模型(POM)的概念,Maven可以从一个中心资料片管理项目构建,报 ...

随机推荐

  1. 【MVC 4】2.使用 Razor

    作者:[美]Adam Freeman      来源:<精通ASP.NET MVC 4> Razor 是微软 MVC3 引入的视图引擎的名称,并在MVC 4 中进行了修订.视图引擎处理 A ...

  2. DP+单调队列 codevs 1748 瑰丽华尔兹(还不是很懂具体的代码实现)

    codevs 1748 瑰丽华尔兹 2005年NOI全国竞赛  时间限制: 1 s  空间限制: 128000 KB  题目等级 : 大师 Master 题解       题目描述 Descripti ...

  3. 如何实现ZBrush中的Alt和Shift键的快速运用

    ZBrush是一个数字雕刻和绘画软件,它以强大的功能和直观的工作流程彻底改变了整个三维雕刻行业.在一个简洁的界面中,ZBrush®为当代数字艺术家提供了世界上最先进的工具.利用快捷键能使操作更快捷高效 ...

  4. Android Studio如何设置代码自动提示

    在用Eclipse时候,你可以进行设置,设置成不管你输入任何字母,都能进行代码的提示,在Android Studio中也可以 设置,而且比Eclipse设置来的简单.当然如果你觉得代码自动提示会降低你 ...

  5. Power Builder的学习

    新的任务可能要运用PowerBuilder了,对这个名词之前仅是有所耳闻,工作中倒是用过power designer这个优秀的建模工具,出自同一家公司的产品,应该拥有同样的基因,于是上网开始查阅相关资 ...

  6. isAnimated函数

    function isAnimated($obj){ var flag=false; if($obj.is(":animated")){ flag=true; } return f ...

  7. f2fs解析(七)node管理器中的 free_nid 结构体

    除了node_info之外, node管理器中还有还有个重要的数据结构: struct free_nid { struct list_head list; /* for free node id li ...

  8. C语言提供的位运算符

      运算符 含义 描述 & 按位与 如果两个相应的二进制位都为1,则该位的结果值为1,否则为0 | 按位或 两个相应的二进制位中只要有一个为1,该位的结果值为1 ^ 按位异或 若参加运算的两个 ...

  9. The Skyline Problem

    A city's skyline is the outer contour of the silhouette formed by all the buildings in that city whe ...

  10. 各种python环境的问题

    [OS] mac [ERROR] decoder jpeg not available [SOLUTION] $ pip uninstall pillow $ brew install libjpeg ...