更多内容请参考官方文档:http://maven.apache.org/guides/index.html

官方文档很详细,基本上可以查找到一切相关的内容。

另外,快速入门可参考视频:孔浩的maven视频。

一、快速入门

(一)搭建环境

1、下载maven,并将之解压

或者直接使用yum 来安装



2、配置环境变量

export PATH=/home/jediael/setupfile/apache-maven-3.1.1/bin:$PATH



3、验证环境

[jediael@master maven_demo]$ mvn -v

Apache Maven 3.1.1 (0728685237757ffbf44136acec0402957f723d9a; 2013-09-17 23:22:22+0800)

Maven home: /home/jediael/setupfile/apache-maven-3.1.1

Java version: 1.7.0_51, vendor: Oracle Corporation

Java home: /usr/java/jdk1.7.0_51/jre

Default locale: en_US, platform encoding: UTF-8

OS name: "linux", version: "2.6.32-431.17.1.el6.x86_64", arch: "amd64", family: "unix"



(二)项目编写

1、建立如下目录结构

[jediael@master maven_demo]$ tree

.

├── pom.xml

└── src

    ├── main

    │   └── java

    │       └── com

    │           └── ljh

    │               └── mavendemo

    │                   └── HelloMaven.java

    └── test

        └── java

            └── com

                └── ljh

                    └── mavendemo

                        └── HelloMavenTest.java



11 directories, 3 files



2、HelloMaven.java内容如下

package com.ljh.mavendemo;

public class HelloMaven{

    public String sayHello(String s){

        return "hello:"+s;

    }

    public static void main(String[] args){

        HelloMaven hm = new HelloMaven();

        System.out.println(hm.sayHello("maven"));

    }



}



3、HelloMavenTest.java内容如下:

package com.ljh.mavendemo;



import org.junit.*;

import static org.junit.Assert.*;

public class HelloMavenTest{

    

    @Test

    public void testSayHello(){

        HelloMaven hm = new HelloMaven();

        assertEquals("hello:Jason",hm.sayHello("Jason"));

   }

}



4、pox.xml内容如下:

<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/maven-v4_0_0.xsd">

  <modelVersion>4.0.0</modelVersion>

  <groupId>com.ljh.mvn</groupId>

  <artifactId>mavendemo</artifactId>

  <packaging>jar</packaging>

  <version>1.0-SNAPSHOT</version>

  <name>mavendeom</name>

  <dependencies>

    <dependency>

      <groupId>junit</groupId>

      <artifactId>junit</artifactId>

      <version>4.10</version>

      <scope>test</scope>

    </dependency>

  </dependencies>

</project>





(三)运行项目

1、编译项目

$ mvn compile



2、运行测试

$ mvn test



3、也可以对项目直接打包成jar包

$ mvn package

此过程也会执行test



4、若所生成的jar包中包括main方法,则可以使用以下命令执行

$ java -cp target/mavendemo-1.0-SNAPSHOT.jar com.ljh.mavendemo.HelloMaven

hello:maven



经过这些步骤后的目录结构如下:

[jediael@master maven_demo]$ tree

.

├── pom.xml

├── src

│   ├── main

│   │   └── java

│   │       └── com

│   │           └── ljh

│   │               └── mavendemo

│   │                   └── HelloMaven.java

│   └── test

│       └── java

│           └── com

│               └── ljh

│                   └── mavendemo

│                       └── HelloMavenTest.java

└── target

    ├── classes

    │   └── com

    │       └── ljh

    │           └── mavendemo

    │               └── HelloMaven.class

    ├── maven-archiver

    │   └── pom.properties

    ├── mavendemo-1.0-SNAPSHOT.jar

    ├── surefire-reports

    │   ├── com.ljh.mavendemo.HelloMavenTest.txt

    │   └── TEST-com.ljh.mavendemo.HelloMavenTest.xml

    └── test-classes

        └── com

            └── ljh

                └── mavendemo

                    └── HelloMavenTest.class



22 directories, 9 files

(四)项目间互相引用

1、将上述项目安装至maven库中

$ mvn install

这会在/home/jediael/.m2/repository/com/ljh目录下生成以下文件:

.

└── mvn

    └── mavendemo

        ├── 1.0-SNAPSHOT

        │   ├── mavendemo-1.0-SNAPSHOT.jar

        │   ├── mavendemo-1.0-SNAPSHOT.pom

        │   ├── maven-metadata-local.xml

        │   └── _remote.repositories

        └── maven-metadata-local.xml



3 directories, 5 files

2、在其它项目中即可通过以下内容对上述项目进行引用

  <dependencies>

    <dependency>

      <groupId>com.ljh.mvn</groupId>

      <artifactId>mavendemo</artifactId>

      <version>.0-SNAPSHOT</version>

    </dependency>

  </dependencies>

二、其它内容

1、设置本地仓库的位置

修改$MAVEN_HOME/setting.xml文件中的内容:

  <!-- localRepository

   | The path to the local repository maven will use to store artifacts.

   |

   | Default: ${user.home}/.m2/repository

  <localRepository>/path/to/local/repo</localRepository>

  —>

默认是~/.m2/repository,可根据实际情况修改



2、自动生成目录结构

由于使用maven需要按照特定的目录结构放置文件,而每次手工创建目录及pom.xml太麻烦,因此maven提供了工具用于自动创建相关目录及pom.xml。

mvn archetype:generate -DgroupId=com.ljh.demo -DartifactId=helloworld -Dversion=0.0.1-SNAPSHOT -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false

[jediael@master test]$ tree  helloworld/

helloworld/

├── pom.xml

└── src

    ├── main

    │   └── java

    │       └── com

    │           └── ljh

    │               └── demo

    │                   └── App.java

    └── test

        └── java

            └── com

                └── ljh

                    └── demo

                        └── AppTest.java



11 directories, 3 files

三、在eclipse中使用maven

(一)配置maven

可以使用eclipse中的默认配置,但一般会指定自己使用的maven。

1、指定maven安装目录

2、修改配置文件的路径

版权声明:本文为博主原创文章,未经博主允许不得转载。

Maven基础教程 分类: C_OHTERS 2015-04-10 22:53 232人阅读 评论(0) 收藏的更多相关文章

  1. 【Solr专题之九】SolrJ教程 分类: H4_SOLR/LUCENCE 2014-07-28 14:31 2351人阅读 评论(0) 收藏

    一.SolrJ基础 1.相关资料 API:http://lucene.apache.org/solr/4_9_0/solr-solrj/ apache_solr_ref_guide_4.9.pdf:C ...

  2. 全方位分析Objcetive-C Runtime 分类: ios技术 2015-03-11 22:29 77人阅读 评论(0) 收藏

    本文详细整理了 Cocoa 的 Runtime 系统的知识,它使得 Objective-C 如虎添翼,具备了灵活的动态特性,使这门古老的语言焕发生机.主要内容如下: 引言 简介 与Runtime交互 ...

  3. IOS之富文本编辑 分类: ios技术 2015-03-06 22:51 89人阅读 评论(0) 收藏

    之前做项目时遇到一个问题:          使用UITextView显示一段电影的简介,由于字数比较多,所以字体设置的很小,行间距和段间距也很小,一大段文字挤在一起看起来很别扭,想要把行间距调大,结 ...

  4. C/C++文字常量与常变量的概念与区别 分类: C/C++ 2015-06-10 22:56 111人阅读 评论(0) 收藏

    以下代码使用平台是Windows 64bits+VS2012. 在C/C++编程时,经常遇到以下几个概念:常量.文字常量.符号常量.字面常量.常变量.字符串常量和字符常量,网上博客资料也是千篇千律,不 ...

  5. 【转载】 Searching过程粗略梳理 分类: H4_SOLR/LUCENCE 2014-07-25 22:59 316人阅读 评论(0) 收藏

    转载自:http://www.cnblogs.com/huangfox/archive/2012/02/09/2344686.html solr-searching过程分析(一) --searchin ...

  6. MATLAB符号运算 分类: 图像处理 2015-07-31 22:53 3人阅读 评论(0) 收藏

    1.符号运算 使用MATLAB可以进行多项式乘除运算,也可以进行因式分解. 例1. 多项式乘除运算(x+3)3 >> syms x; >> expand((x+3)^3) an ...

  7. 快速幂取模 分类: ACM TYPE 2014-08-29 22:01 95人阅读 评论(0) 收藏

    #include<stdio.h> #include<stdlib.h> //快速幂算法,数论二分 long long powermod(int a,int b, int c) ...

  8. NYOJ-44 子串和 AC 分类: NYOJ 2014-01-04 22:53 154人阅读 评论(0) 收藏

    作为菜鸟一枚,对子串和的代码完全就是硬算 的..结果是TLE #include<stdio.h> int jh(int x,int y,int num[],int sum[]); int ...

  9. Red and Black(BFS or DFS) 分类: dfs bfs 2015-07-05 22:52 2人阅读 评论(0) 收藏

    Description There is a rectangular room, covered with square tiles. Each tile is colored either red ...

随机推荐

  1. 洛谷——P3178 [HAOI2015]树上操作

    https://www.luogu.org/problem/show?pid=3178#sub 题目描述 有一棵点数为 N 的树,以点 1 为根,且树点有边权.然后有 M 个操作,分为三种:操作 1 ...

  2. [Redux-Observable && Unit Testing] Use tests to verify updates to the Redux store (rxjs scheduler)

    In certain situations, you care more about the final state of the redux store than you do about the ...

  3. java产生随机数的三种方式

    转自:https://blog.csdn.net/YTTmiao/article/details/78187448 随机数在实际中使用很广泛,比如要随即生成一个固定长度的字符串.数字.或者随即生成一个 ...

  4. Elasticsearch之插件扩展

    Elasticsearch之插件介绍及安装 Elasticsearch之head插件安装之后的浏览详解 Elasticsearch之kopf插件安装之后的浏览详解 Elasticsearch-2.4. ...

  5. Shelled-out Commands In Golang

    http://nathanleclaire.com/blog/2014/12/29/shelled-out-commands-in-golang/ Shelled-out Commands In Go ...

  6. BZOJ2119: 股市的预测(后缀数组)

    Description 墨墨的妈妈热爱炒股,她要求墨墨为她编写一个软件,预测某只股票未来的走势.股票折线图是研究股票的必备工 具,它通过一张时间与股票的价位的函数图像清晰地展示了股票的走势情况.经过长 ...

  7. RS-485总线和Modbus通信协议的关系

    一.RS-485总线 RS-485总线技术只是规定了接口的电气标准,并没有规定RS-485接口的电缆,插件以及通信协议,只是OSI规范中物理层的一个标准,RS-485总线采用差分平衡传输方式.由于RS ...

  8. 腾讯2016实习生面试经验(已经拿到offer)

      忐忑了好几天,今天最终收到深圳总部的电话.允许录用我为2016年实习生,感觉整个天空都放晴了.坐标:武汉大学,给大家说说我的面试经历吧,我投的是软件开发--应用开发方向. 一.校招流程 投递简历- ...

  9. Excel查询序列所相应的值-vLoopup函数,求比例分子改变但分母不变

    watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQveWV3ZWlvdXlhbmc=/font/5a6L5L2T/fontsize/400/fill/I0JBQk ...

  10. ubuntu14中 memcached安装与使用

    第一步,先安装lib-event 下载lib-event  的包http://libevent.org/ 下载完之后,解压安装 ./configure –prefix=/usr (或 ./config ...