Maven 系列 二 :Maven 常用命令,手动创建第一个 Maven 项目【转】
1.根据 Maven 的约定,我们在D盘根目录手动创建如下目录及文件结构:
2.打开 pom.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.lt</groupId>
<artifactId>mavenDemo2</artifactId>
<packaging>jar</packaging>
<version>0.0.1-SNAPSHOT</version>
<name>mavenDemo2</name>
<url>http://maven.apache.org</url>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.11</version>
</dependency>
</dependencies>
<build>
<finalName>mavenDemo2</finalName>
</build>
<!-- 设置编码 -->
<properties>
<project.build.sourceEncoding>
UTF-8
</project.build.sourceEncoding>
</properties>
</project>

pom.xml文件简单解释(groupId,artifactId,version三个一起描述了项目的唯一标识):
- groupId - 组名,主项目标识;
- artifactId - 工程名,子项目(模块)标识;
- packaging - 打包方式;
- version - 版本;
- name - 项目描述名;
3.在 src/main/java/com/lt/maven 下新建 Hello.java 类文件,代码如下:

package com.lt.maven; public class Hello {
public String sayHello(String name){
return "Hello "+name+"!";
}
}

4.在 src/test/java/com/lt/maven 下新建 HelloTest.java 测试类文件,代码如下:

package com.lt.maven; import org.junit.Test;
import static junit.framework.Assert.*; public class HelloTest {
@Test
public void testHello(){
Hello hello = new Hello();
String results = hello.sayHello("coder");
assertEquals("Hello coder!",results);
}
}

5.编译项目源代码。打开 cmd 窗口,进入 mavenDemo2 目录,执行 “mvn compile” 命令:
Maven 的各种功能(包括 maven 的命令)都是通过插件的形式来实现的,使用 maven 构建项目,需要联网到 maven 中央仓库下载所需插件包,并保存到 maven 仓库,仓库默认位置为:${user.home}/.m2/repository,以后用到就不需要再重新下载。
6.清理项目编译,执行 “mvn clean” 命令,将删除 target 目录:
7.运行测试,执行 “mvn test” 命令:
运行成功,将生成如下文件:
8.打包项目,执行 “mvn clean package” 组合命令:
Maven 自动帮我们完成项目的编译、测试、打包。
运行成功,将生成如下文件:
9.执行 “mvn install” 命令:
看到的效果跟 mvn clean package 命令一样,但是我们打开仓库位置(${user.home}/.m2/repository/{groupId}/{artifactId}/{version}),可以看到项目被打包发布到了 maven 的仓库,以后其他项目需要依赖到这个项目,就可以通过在 pom.xml 文件中添加依赖来引用:
- maven-metadata-local.xml - 记录了项目元数据,包括 groupId,artifactId,version。
- mavenDemo2-0.0.1-SNAPSHOT.pom - 记录了 mavenDemo2 项目信息以及它的依赖,maven 通过这种方式解决传递依赖,即只要指明了对 mavenDemo2 的依赖,maven 会根据这个文件自动导入 mavenDemo2 对 junit 的依赖。
10.Maven 的目录结构遵循一定的约定,所以我们可以通过下面的命令来自动创建这样的目录结构。执行 “mvn archetype:generate” 命令:
选择项目骨架类型,直接回车,选择默认的 maven-archetype-quickstart ;选择版本,直接回车,默认选择第 6 项:
接下来,录入项目相关信息,groupId,artifactId,version(默认1.0-SNAPSHOT),package(默认跟 groupId 一样:com.lt),接着确认:
Maven 系列 二 :Maven 常用命令,手动创建第一个 Maven 项目【转】的更多相关文章
- Maven 系列 二 :Maven 常用命令,手动创建第一个 Maven 项目
1.根据 Maven 的约定,我们在D盘根目录手动创建如下目录及文件结构: 2.打开 pom.xml 文件,添加如下内容: 1 <project xmlns="http://maven ...
- Maven入门指南② :Maven 常用命令,手动创建第一个 Maven 项目
1.根据 Maven 的约定,我们在D盘根目录手动创建如下目录及文件结构: 2.打开pom.xml文件,添加如下内容: <project xmlns="http://maven.apa ...
- Docker系列二: docker常用命令总结
https://docs.docker.com/reference/ 官方命令总结地址 容器生命周期管理 1.docker run 创建一个新的容器并运行一个命令 docker run [optio ...
- Maven命令行创建java或javaWeb项目
Maven命令行创建java或javaWeb项目 1.命令行创建普通java项目 mvn archetype:generate -DgroupId=com.fxust -DartifactId=d ...
- maven一键构造及常用命令
maven一键构造及常用命令 1.maven的一键构建 我们不再使用本地的Tomcat对项目进行编译.测试.运行.打包.安装.部署等一系列过程,而是使用maven自身集成的Tomcat插件来完成这些操 ...
- 创建第一个Maven项目
-----------------------siwuxie095 创建第一个 Maven 项目 1.打开 Ec ...
- Git知识总览(二) git常用命令概览
上篇博客我们从 git clone 和 git status 两个命令开始,引出了一系列的git操作命令, 请参见:<Git知识总览(一) 从 git clone 和 git status 谈起 ...
- docker学习笔记二:常用命令
docker学习笔记二:常用命令 查看docker常用命令 docker --help 返回结果如下: 其中常用的命令如下: 1.image相关操作 展示所有的image: 删除image: rmi ...
- 手动创建第一个OC程序
手动创建第一个OC程序 创建一个文件夹,文件夹内创建一个a.m的OC源文件,并编辑 之前说过,OC是完全兼容C语言的,那么我们先写个下面的程序尝试一下 #include<stdio.h> ...
随机推荐
- python_way day14 HTML
python_way day 14 HTML 一,标签 二.特殊字符 三,css <!DOCTYPE html> <html lang="en"> < ...
- 2013 Multi-University Training Contest 6
HDU-4655 Cut Pieces 题意:有N个格子能够被涂色,每个格子能够涂1-ai 种颜色,当N=6,涂色方案:112233 认为方案中共有3个颜色块:涂色方案:121212 认为方案中共有6 ...
- Data Science 和 Finance 两个领域的融合是什么样子的?
Data Science 和 Finance 两个领域的融合是什么样子的? 2015-05-24 董可人 现在大部分人所说的Quant一般是指各大投行里做衍生品定价,信用评估,风险控制之类工作的人,这 ...
- DZY Loves Chessboard
DescriptionDZY loves chessboard, and he enjoys playing with it. He has a chessboard of n rows and m ...
- maven概念
1. 下载并解压Maven:Maven下载页2. 将环境变量M2_HOME设置为解压后的目录: 3. 将M2环境变量设置为M2_HOME/bin(在Windows上是%M2_HOME%/bin,在U ...
- c function
/* #include<stdio.h> int is_prime(int n) { for(int i = 2; i <= n/2; i ++) if(n % 2 == 0) re ...
- html5 的draggable属性使用<转载收藏>
在HTML5中,已经支持在浏览器与其他应用程序之间的数据互相拖动,同时也大大简化了有关于拖放方面的代码. 实现拖放的步骤 在HTML5中要想实现拖放操作,至少要经过两个步骤: 将想要拖放的对象元素的d ...
- java文件操作(读流)
try{ InputStream is = new FileInputStream("abc.txt"); InputStreamReader ir = new InputStre ...
- Unable to execute dex: Multiple dex files define Lcom/gl
[2015-04-16 17:42:04 - Dex Loader] Unable to execute dex: Multiple dex files define Lcom/gl/softphon ...
- Mvc4_Area的应用
为什么需要分离? 我们知道MVC项目各部分职责比较清晰,相比较ASP.NET Webform而言,MVC项目的业务逻辑和页面展现较好地分离开来,这样的做法有许多优点,比如可测试,易扩展等等.但是在实际 ...