Maven基础教程
更多内容请参考官方文档: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基础教程的更多相关文章
- Maven基础教程 分类: C_OHTERS 2015-04-10 22:53 232人阅读 评论(0) 收藏
更多内容请参考官方文档:http://maven.apache.org/guides/index.html 官方文档很详细,基本上可以查找到一切相关的内容. 另外,快速入门可参考视频:孔浩的maven ...
- Dubbo 基础教程
原文地址:Dubbo 基础教程 博客地址:http://www.extlight.com 一.前言 当服务越来越多时,容量的评估,小服务资源的浪费等问题逐渐显现,此时需要增加一个调度中心基于访问压力实 ...
- Spring Boot基础教程》 第1节工具的安装和使用
<Spring Boot基础教程> 第1节 工具的安装和使用 Spring Boot文档 https://qbgbook.gitbooks.io/spring-boot-reference ...
- Spring Boot 2.x基础教程:Swagger静态文档的生成
前言 通过之前的两篇关于Swagger入门以及具体使用细节的介绍之后,我们已经能够轻松地为Spring MVC的Web项目自动构建出API文档了.如果您还不熟悉这块,可以先阅读: Spring Boo ...
- Spring Cloud Alibaba基础教程-Nacos(三)
在Spring Cloud Alibaba基础教程-Nacos(二)当中学习了,如何使用 nacos图形化界面操作 ,使用Nacos部署集群,下面我们开始Nacos最后一篇的学习 ,如果对你有帮助,记 ...
- Spring Cloud Alibaba基础教程-Nacos(一)
2019快结束,也有很久没写博客了,今天我们来谈谈Nacos,如果对您有帮助,麻烦左上角点个关注 ,谢谢 ! 嘻嘻 今天先写第一篇 文章目录 为什么要使用Nacos Eureka 闭源 Nacos的优 ...
- maven基础学习-为什么要用maven,帮助解决了什么问题,怎么解决的,希望以后学习每个知识点都可以这样问下自己
maven基础学习 第1章 Maven介绍 1.1 什么是Maven 1.1.1 什么是Maven Maven 的正确发音是[ˈmevən],而不是"马瘟"以及其他什么瘟.Mave ...
- Maven——基础篇
Maven--基础篇 Maven出现前的问题 一个项目就是一个工程,而工程内一般是通过package包来分模块,比较用户模块,订单模块等,如果项目过于庞大,通过包模块来划分就不太合适,而应该拆分为模块 ...
- matlab基础教程——根据Andrew Ng的machine learning整理
matlab基础教程--根据Andrew Ng的machine learning整理 基本运算 算数运算 逻辑运算 格式化输出 小数位全局修改 向量和矩阵运算 矩阵操作 申明一个矩阵或向量 快速建立一 ...
随机推荐
- Javascript获取某个月的天数-简单方法 .(转别人的)
Javascript里面的new Date("xxxx/xx/xx")这个日期的构造方法有一个妙处,当你传入的是"xxxx/xx/0"(0号)的话,得到的日期 ...
- Membership修改密码
MembershipUser mu = Membership.GetUser(labelUserName.Text.Trim());//获取资格用户 try { bool flat = mu.Chan ...
- JS中的phototype是JS中比较难理解的一个部分
本文基于下面几个知识点: 1 原型法设计模式 在.Net中可以使用clone()来实现原型法 原型法的主要思想是,现在有1个类A,我想要创建一个类B,这个类是以A为原型的,并且能进行扩展.我们称B的原 ...
- 使用iText生成带底图的PDF
package com.wzh.itext; import com.itextpdf.text.Chunk; import com.itextpdf.text.Document; import com ...
- substr vs substring
javascript(js)中的 substring和substr方法 Posted on 2009-02-26 14:14 chinaifne 阅读(33698) 评论(0) 编辑 收藏 1.sub ...
- pfsense 2.2RC版本应用
为什么要上RC版本呢?因为华硕主板有一个RTL8111G驱动在2.15中还没有识别.... 公司双线WAN,一个PPPOE一个静态IP. 开了端口转发, 要求对不同的IP进行相关限速, 到达指定网站用 ...
- 特征提取(Detect)、特征描述(Descriptor)、特征匹配(Match)的通俗解释
特征匹配(Feature Match)是计算机视觉中很多应用的基础,比如说图像配准,摄像机跟踪,三维重建,物体识别,人脸识别,所以花一些时间去深入理解这个概念是不为过的.本文希望通过一种通俗易懂的方式 ...
- bzoj有趣的题目
你会发现bzoj上好多题AC率高的让人不敢想象 其实是因为数据没发,所以被n个人水过了-- 1142 1167 1351 1354 1359 1482 2812 3056 1469 我有特殊的减少代码 ...
- acdream1412:2-3 trees 组合数dp
题意: 给出一个标准2-3树的叶子节点(最底层节点)个数 L,求2-3数的形成方案数并取余 分析: 如果有L个叶子枚举 每个 可以使x*2+y*3=L 的 x y 那么在最底层就有 c(x+y,x) ...
- usaco5.5-Hidden Passwords
最小表示法,感觉可以做成个模板,第一次RE是因为字符串长度变2倍了而我把数组开小了 Executing... Test 1: TEST OK [0.008 secs, 3760 KB] Tes ...