更多内容请参考官方文档: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基础教程的更多相关文章

  1. Maven基础教程 分类: C_OHTERS 2015-04-10 22:53 232人阅读 评论(0) 收藏

    更多内容请参考官方文档:http://maven.apache.org/guides/index.html 官方文档很详细,基本上可以查找到一切相关的内容. 另外,快速入门可参考视频:孔浩的maven ...

  2. Dubbo 基础教程

    原文地址:Dubbo 基础教程 博客地址:http://www.extlight.com 一.前言 当服务越来越多时,容量的评估,小服务资源的浪费等问题逐渐显现,此时需要增加一个调度中心基于访问压力实 ...

  3. Spring Boot基础教程》 第1节工具的安装和使用

    <Spring Boot基础教程> 第1节 工具的安装和使用 Spring Boot文档 https://qbgbook.gitbooks.io/spring-boot-reference ...

  4. Spring Boot 2.x基础教程:Swagger静态文档的生成

    前言 通过之前的两篇关于Swagger入门以及具体使用细节的介绍之后,我们已经能够轻松地为Spring MVC的Web项目自动构建出API文档了.如果您还不熟悉这块,可以先阅读: Spring Boo ...

  5. Spring Cloud Alibaba基础教程-Nacos(三)

    在Spring Cloud Alibaba基础教程-Nacos(二)当中学习了,如何使用 nacos图形化界面操作 ,使用Nacos部署集群,下面我们开始Nacos最后一篇的学习 ,如果对你有帮助,记 ...

  6. Spring Cloud Alibaba基础教程-Nacos(一)

    2019快结束,也有很久没写博客了,今天我们来谈谈Nacos,如果对您有帮助,麻烦左上角点个关注 ,谢谢 ! 嘻嘻 今天先写第一篇 文章目录 为什么要使用Nacos Eureka 闭源 Nacos的优 ...

  7. maven基础学习-为什么要用maven,帮助解决了什么问题,怎么解决的,希望以后学习每个知识点都可以这样问下自己

    maven基础学习 第1章 Maven介绍 1.1 什么是Maven 1.1.1 什么是Maven Maven 的正确发音是[ˈmevən],而不是"马瘟"以及其他什么瘟.Mave ...

  8. Maven——基础篇

    Maven--基础篇 Maven出现前的问题 一个项目就是一个工程,而工程内一般是通过package包来分模块,比较用户模块,订单模块等,如果项目过于庞大,通过包模块来划分就不太合适,而应该拆分为模块 ...

  9. matlab基础教程——根据Andrew Ng的machine learning整理

    matlab基础教程--根据Andrew Ng的machine learning整理 基本运算 算数运算 逻辑运算 格式化输出 小数位全局修改 向量和矩阵运算 矩阵操作 申明一个矩阵或向量 快速建立一 ...

随机推荐

  1. 编译protobuf-2.5.0中的错误处理

    最近在编译protobuf-2.5.0源码的时候发现的错误已经应对方法 1. 在源码目录执行 ./configure 命令的时候,发生如下错误 error: C++ preprocessor &quo ...

  2. Python socket 广播信息到所有连接的客户端

    Python3,多线程,多客户端,广播数据 #!/usr/bin/env python3 import time import threading import queue import socket ...

  3. 编写Swift代码的其他工具

    Swift程序不能在Windows其他平台编译和运行,有人提供了一个网站swiftstub.com,左栏是代码编辑窗口,右栏是运行结果窗口.可以在任何平台下编译和运行Swift程序.

  4. Linux企业级项目实践之网络爬虫(4)——主程序流程

    当我们设计好程序框架之后就要开始实现它了.第一步当然是要实现主程序的流程框架.之后我们逐渐填充每个流程的细节和其需要调用的模块. 主程序的流程如下: 1.  解析命令行参数,并根据参数跳转到相应的处理 ...

  5. 【No system images installed for this target】的解决方式

    打开eclipse,新建安卓SDK模拟器时,选择完Target之后,再选择CPU/ABI时,默认为No system images installed for this target. 且无法编辑: ...

  6. bzoj 1196

    http://www.lydsy.com/JudgeOnline/problem.php?id=1196 二分+并查集 一共有2*M条路径,我们首先将这2*M条路径按费用排序. 然后二分最大费用的公路 ...

  7. PHP 面向对象中常见关键字使用(final、static、const和instanceof)

    PHP 面向对象中常见关键字的使用: 1.final :final关键字可以加在类或者类中方法之前,但是不能使用final标识成员属性. 作用: 使用final标识的类,不能被继承. 在类中使用fin ...

  8. POJ1845 数论 二分快速取余

    大致题意: 求A^B的所有约数(即因子)之和,并对其取模 9901再输出. 解题思路: 应用定理主要有三个: (1)   整数的唯一分解定理: 任意正整数都有且只有一种方式写出其素因子的乘积表达式. ...

  9. web前端之 DOM

    文档对象模型(Document Object Model,DOM)是一种用于HTML和XML文档的编程接口.它给文档提供了一种结构化的表示方法,可以改变文档的内容和呈现方式.我们最为关心的是,DOM把 ...

  10. Javascript: 截取字符串多出来并用省略号[...]显示

    /背景知识/ substring 方法用于提取字符串中介于两个指定下标之间的字符 substring(start,end) 开始和结束的位置,从零开始的索引 参数描述 start 必需.一个非负的整数 ...