Maven基础教程 分类: C_OHTERS 2015-04-10 22:53 232人阅读 评论(0) 收藏
更多内容请参考官方文档: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) 收藏的更多相关文章
- 【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 ...
- 全方位分析Objcetive-C Runtime 分类: ios技术 2015-03-11 22:29 77人阅读 评论(0) 收藏
本文详细整理了 Cocoa 的 Runtime 系统的知识,它使得 Objective-C 如虎添翼,具备了灵活的动态特性,使这门古老的语言焕发生机.主要内容如下: 引言 简介 与Runtime交互 ...
- IOS之富文本编辑 分类: ios技术 2015-03-06 22:51 89人阅读 评论(0) 收藏
之前做项目时遇到一个问题: 使用UITextView显示一段电影的简介,由于字数比较多,所以字体设置的很小,行间距和段间距也很小,一大段文字挤在一起看起来很别扭,想要把行间距调大,结 ...
- C/C++文字常量与常变量的概念与区别 分类: C/C++ 2015-06-10 22:56 111人阅读 评论(0) 收藏
以下代码使用平台是Windows 64bits+VS2012. 在C/C++编程时,经常遇到以下几个概念:常量.文字常量.符号常量.字面常量.常变量.字符串常量和字符常量,网上博客资料也是千篇千律,不 ...
- 【转载】 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 ...
- MATLAB符号运算 分类: 图像处理 2015-07-31 22:53 3人阅读 评论(0) 收藏
1.符号运算 使用MATLAB可以进行多项式乘除运算,也可以进行因式分解. 例1. 多项式乘除运算(x+3)3 >> syms x; >> expand((x+3)^3) an ...
- 快速幂取模 分类: ACM TYPE 2014-08-29 22:01 95人阅读 评论(0) 收藏
#include<stdio.h> #include<stdlib.h> //快速幂算法,数论二分 long long powermod(int a,int b, int c) ...
- 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 ...
- 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 ...
随机推荐
- POJ 2141 模拟
思路:字符串解密 啥都告诉你了 模拟就好 //By SiriusRen #include <cstdio> #include <cstring> using namespace ...
- 洛谷P2251 质量检测
题目背景 无 题目描述 为了检测生产流水线上总共N件产品的质量,我们首先给每一件产品打一个分数A表示其品质,然后统计前M件产品中质量最差的产品的分值Q[m] = min{A1, A2, ... Am} ...
- janos.io
http://janos.io/ https://developer.mozilla.org/en-US/Firefox_OS/Developing_Firefox_OS/Porting
- Gym 100952 B. New Job
B. New Job time limit per test 1 second memory limit per test 64 megabytes input standard input outp ...
- sleep---暂停指定的时间
sleep命令可以用来将目前动作延迟一段时间. 使用权限:所有使用者. 语法 sleep [--help] [--version] number[smhd] 参数说明: --help : 显示辅助讯息 ...
- windows查看硬件信息系统信息
rem 查看cpu wmic cpu list briefrem 查看物理内存wmic memphysical list briefrem 查看逻辑内存wmic memlogical list bri ...
- HDU 5063 Operation the Sequence(暴力 数学)
题目链接:pid=5063" target="_blank">http://acm.hdu.edu.cn/showproblem.php?pid=5063 Prob ...
- 传输资料在100MB以上的 传输介质选择
传输资料在100MB以上的 硬盘-->千兆局域网-->硬盘 硬盘-->USB3.0-->硬盘 硬盘-->数据线-->硬盘 传输速率 USB 的理论传输值 USB2. ...
- 不用浏览器,直接用代码发送文件给webservices所在服务器 并且可以周期行的发送
package com.toic.test; import java.io.DataInputStream; import java.io.DataOutputStream; import java. ...
- 前端项目中常用es6知识总结 -- let、const及数据类型延伸
项目开发中一些常用的es6知识,主要是为以后分享小程序开发.node+koa项目开发以及vueSSR(vue服务端渲染)做个前置铺垫. 项目开发常用es6介绍 1.块级作用域 let const 2 ...