总结:

Mvn clean compile:编译主代码

Mvn clean test:执行测试代码

Mvn clean package:打包

Mvn clean install: 安装到本地仓库

执行test之前会执行compile,执行package之前会执行test,install之前会执行package

配置好环境变量(自行百度),构建HelloWorld:

1, 编写pom文件:

Maven的核心是pom.xml 定义了项目的基本信息(POM:project object model项目对象模型),用于描述项目如何构建,声明项目依赖等。

创建一个hello-world文件夹,打开并创建一个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/xsd/maven-4.0.0.xsd">
<!--POM模型的版本-->
<modelVersion>4.0.0</modelVersion>
<!--公司名-->
<groupId>com.lhy.mvnbook</groupId>
<!--当前项目的唯一id-->
<artifactId>hello-world</artifactId>
<!--当前版本,快照版-->
<version>0.0.1-SNAPSHOT</version>
<name>Maven HelloWorld Project</name>
<description>Maven HelloWorld Project</description> <dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<scope>test</scope>
</dependency>
</dependencies> </project>

说明:g、a、v三个元素定义了一个项目基本的坐标,在maven世界,任何的jar、pom、war都是基于基本坐标进行区分的。必须

groupId:项目属于哪个组或公司名。必须

artifactId:当前maven项目在组中的唯一id。必须

version:指定项目当前的版本,0.0.1-SNAPSHOT意思是快照,说明项目处于开发中,不是稳定版本。随着项目发展,version更新为1.0、1.1-SNAPSHOT、1.1、1.2等。必须

Name:项目名称,非必须

1, 编写主代码:

主代码:会被打包到最终构建,如jar中,

测试代码:只会在测试时用,不会被打包。

默认情况:Maven默认项目主代码位于src/main/java目录,Maven会自动搜索该目录找到项目的主代码,测试代码位于src/test/java

编写主代码,在步骤1创建的hello-world文件夹下创建src/main/java子文件夹,(再创建包com/lhy/mvnbook/helloworld)并创建HelloWorld.java

package com.lhy.mvnbook.helloworld;
public class HelloWorld {
public String sayHello(String name){
return "hello " + name;
}
public static void main(String[] args) {
new HelloWorld().sayHello("maven");
}
}

1, 编写测试代码:

使用junit测试,在pom里加上junit依赖,如步骤1  pom.xml中所示, maven会自动去中央仓库(http://repo1.maven.org/maven2/)下载junit的jar包(我喜欢去http://mvnrepository.com/搜索自己需要的依赖)。

<scope>test<scope>标识依赖范围,只对测试代码有效,在主代码中引用junit会编译错误。不写默认是compile,标识该依赖对主代码和测试代码都有效,

<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<scope>test</scope>
</dependency>
</dependencies>

在src/test/java下新建HelloWorldTest.java

package com.lhy.mvnbook.helloworld;
import static org.junit.Assert.*;
import org.junit.Test;
public class HelloWorldTest {
@Test
public void test() {
String result = new HelloWorld().sayHello("maven");
assertEquals("hello maven", result);
}
}

主代码和测试代码都创建好后,来学几个基本的maven命令:

maven clean compile:

切换到项目根路径hello-world,打开命令窗口,运行命令:mvn clean compile:

Maven构建的所有输出都会在项目根目录的target目录。

Compile:编译主项目,会在项目主代码编译到target/classes目录生成HelloWorld.class

Clean:删除target目录,mvn clean compile就是先清除以前的编译结果,重新编译

测试:---------------------------------

切换到项目根目录执行mvn clean test

测试通过,没有错误

生成目录文件:

4,打包和运行

将项目打包,pom中不写打包类型默认是打成jar包

<packaging>pom</packaging>标签指定项目的类型

执行命令:mvn clean package:

打包之前会执行编译、测试等操作。

生成的jar

5, 将jar包插入到本地仓库:以供其他项目引用

执行mvn clean install

默认的本地仓库位置:

C:\Users\lhy\.m2\repository\com\lhy\mvnbook\hello-world\0.0.1-SNAPSHOT

maevn HelloWorld 基本命令的更多相关文章

  1. 2.每人自己建立一个HelloWorld项目,练习使用git的add/commit/push/pull/fetch/clone等基本命令。比较项目的新旧版本的差别。答题人:张立鹏

    第1步:创建SSH Key.在用户主目录下,看看有没有.ssh目录,如果有,再看看这个目录下有没有id_rsa和id_rsa.pub这两个文件,如果已经有了,可直接跳到下一步.如果没有,打开Shell ...

  2. 第二章——建立一个HelloWorld项目,练习使用git的add/commit/push/pull/fetch/clone等基本命令。比较项目的新旧版本的差别-----答题者:徐潇瑞

    1.首先下载安装git,很简单所以就不详细说了,当弹出一个类似的命令窗口的东西,就说明Git安装成功 2.因为Git是分布式版本控制系统,所以需要填写用户名和邮箱作为一个标识 3.接着,注册githu ...

  3. 第二章-如何使用github建立一个HelloWorld项目,git的add/commit/push/pull/fetch/clone等基本命令用法。--答题人:杨宇杰

    1.配置Git 首先在本地创建ssh 秘钥:在git bash输入: $ ssh-keygen -t rsa -C "your_email@youremail.com" eg:$ ...

  4. OSGi-开发环境的建立和HelloWorld(04)

    1 OSGi开发环境的建立 1.1 Equinox是什么 从代码角度来看,Equinox其实就是OSGi核心标准的完整实现,并且还在这个基础上增加了一些额外的功能(比如为框架增加了命令行和程序执行的入 ...

  5. 我的Git之旅(1)---git安装、github注册以及一些基本命令

    蚂蚁作为一个混码农届的新人来说,看到什么东西都觉得高大上的感觉.最近接触到了git,有种蠢蠢欲动的感觉,想 试一把.因此开启了我的Git之旅.废话不多说,开始我的git之旅. 1.git服务器的选择 ...

  6. OSGI框架—HelloWorld小实例

    OSGi(Open Service Gateway Initiative)技术是Java动态化模块化系统的一系列规范.OSGi一方面指维护OSGi规范的OSGI官方联盟,另一方面指的是该组织维护的基于 ...

  7. Linux文件基本命令

    Linux文件基本命令学习 操作技巧: 输入文件/目录/命令的前几个字母之后,按下tab键,则自动补全 按上/下,回滚曾经用过的命令 不想执行命令使用:crtl + c 基础命令: ls(查看) 基础 ...

  8. Docker环境安装,基本命令集合

    一.docker安装 1).卸载旧的安装包 centos7默认安装的docker版本是1.13.1,卸载它,安装新的版本. root用户下,一次把这坨命令复制进去 yum remove docker ...

  9. Docker安装与基本命令

    docker安装 Ubuntu 更新apt包索引 sudo apt-get update 更新apt包索引 sudo apt-get upgrade 安装docker sudo apt-get ins ...

随机推荐

  1. pointcloud(点云)与mesh(面元)模型的区别

    点元与面元

  2. .NET基础 (11)类型的基类System.Object

    类型的基类System.Object1 是否存在不继承自System.Object类型的类2 在System.Object中定义的三个比较方法有何异同3 如何重写GetHashCode方法 类型的基类 ...

  3. HDU1233 还是畅通工程 2017-04-12 19:49 64人阅读 评论(0) 收藏

    还是畅通工程 Time Limit : 4000/2000ms (Java/Other)   Memory Limit : 65536/32768K (Java/Other) Total Submis ...

  4. 洛谷P4556 [Vani有约会]雨天的尾巴(线段树合并)

    题目背景 深绘里一直很讨厌雨天. 灼热的天气穿透了前半个夏天,后来一场大雨和随之而来的洪水,浇灭了一切. 虽然深绘里家乡的小村落对洪水有着顽固的抵抗力,但也倒了几座老房子,几棵老树被连根拔起,以及田地 ...

  5. Nutch 问题杂记

    1. 如何绕过目标站点的robots.txt限制 多数站点都是只允许百度.google等搜索引擎抓取的,所以会在robots.txt里限制其他爬虫. nutch自然是会遵循robots协议的,但是我们 ...

  6. Jenkins 使用 Build Flow 插件配置工作流任务依赖

    Jenkins 使用 Build Flow 插件配置工作流任务依赖 Jenkins 多任务依赖方式的配置方法目前可以通过MultiJob Project 或者Build Flow 或者Piplelin ...

  7. LeeDUT个人WEB作品

    *****目前大三前端狗一只,听说博客里写点记点能求OFFER***** 1.微云盘upan.oureda.cn  2013.10 微云盘是基于分布式系统.提供文件分享的校园存储站点,上传文件之后随即 ...

  8. 将实体转换为Hashtable

    1.将实体转换为Hashtable,用于将实体参数处理为hashtable,方便sql参数传递 /// <summary> /// 将实体转换为Hashtable /// </sum ...

  9. 安装OWA2013

    首先可以参考以下博客进行安装 http://www.cnblogs.com/poissonnotes/p/3238238.html 需要特别注意的是,我的SHAREPOINT系统虽然是英文版的,但是同 ...

  10. CentOS7.x下安装VNC

    1.检查是否安装VNC rpm -q tigervnc tigervnc-server 2.安装X-Window yum check-update yum groupinstall "X W ...