总结:

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. struts2+websocket报错:failed: Error during WebSocket handshake: Unexpected response code:404

    最近把websocket集成进项目里面来,打开网页总是会遇到这样的错误. 网上说的原因有3种,但是都不适合我,但是也记录下. 1.struts2截拦掉了ws的请求.这种援用可以尝试把web.xml清空 ...

  2. handsontable-developer guide-cell type

    单元格类型:这里有很多没见过的用法,得好好总结一下 //预定义的类型Text Numeric Checkbox Date Select Dropdown Autocomplete Password H ...

  3. (1)-使用json所要用到的jar包下载

    json是个非常重要的数据结构,在web开发中应用十分广泛.我觉得每个人都应该好好的去研究一下json的底层实现,需要准备下面的六个jar包:commons-lang-1.0.4.jar common ...

  4. Using Load-Balancers with Oracle E-Business Suite Release 12 (Doc ID 380489.1)

      Using Load-Balancers with Oracle E-Business Suite Release 12 (Doc ID 380489.1) Modified: 12-Jun-20 ...

  5. Index--复合索引的思考1

    在创建复合索引时,除了考虑索引键的选取外,还需考虑索引键的先后顺序.下面借助一些场景来讲解. 场景1表dbo.UserLoginStats记录每个用户每天的登录统计,目前表中存放10亿数据,每天新增数 ...

  6. androidstudio提示adb错误:cannot parse version string:kg01的解决方法

    打开adb.exe的文件目录,同时按下shift和鼠标右键,打开cmd后运行一下这个命令adb kill-server

  7. jQuery-关于Ajax请求async属性的说明及总结

    在jquery的ajax中如果希望实现同步或者异步,我们可以设置async(默认true,表示异步请求),下面举例说明两种请求方式的区别. 1.后台代码 public JsonResult GetDa ...

  8. leetcode 有效的括号

    给定一个只包括 '(',')','{','}','[',']' 的字符串,判断字符串是否有效. 有效字符串需满足: - 左括号必须用相同类型的右括号闭合. - 左括号必须以正确的顺序闭合. 注意空字符 ...

  9. 流与文本文件操作(C#)

    1.流的基本概念 流是任何输入输出库的必不可少的组成部分.当你的程序需要从一个外部数据源(比如,files.other PCs或servers等)读或者写数据时,就需要用到流streams. 流是由一 ...

  10. 使用ssm实现校验密码

    由于审题不清,在完成作业“servlet实现进行用户名和密码验证”中使用了jdbc连接数据库的方式实现,没用静态方式验证,故本次作业使用ssm实现 本次作业上传到百度网盘:链接:https://pan ...