maevn HelloWorld 基本命令
总结:
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 基本命令的更多相关文章
- 2.每人自己建立一个HelloWorld项目,练习使用git的add/commit/push/pull/fetch/clone等基本命令。比较项目的新旧版本的差别。答题人:张立鹏
第1步:创建SSH Key.在用户主目录下,看看有没有.ssh目录,如果有,再看看这个目录下有没有id_rsa和id_rsa.pub这两个文件,如果已经有了,可直接跳到下一步.如果没有,打开Shell ...
- 第二章——建立一个HelloWorld项目,练习使用git的add/commit/push/pull/fetch/clone等基本命令。比较项目的新旧版本的差别-----答题者:徐潇瑞
1.首先下载安装git,很简单所以就不详细说了,当弹出一个类似的命令窗口的东西,就说明Git安装成功 2.因为Git是分布式版本控制系统,所以需要填写用户名和邮箱作为一个标识 3.接着,注册githu ...
- 第二章-如何使用github建立一个HelloWorld项目,git的add/commit/push/pull/fetch/clone等基本命令用法。--答题人:杨宇杰
1.配置Git 首先在本地创建ssh 秘钥:在git bash输入: $ ssh-keygen -t rsa -C "your_email@youremail.com" eg:$ ...
- OSGi-开发环境的建立和HelloWorld(04)
1 OSGi开发环境的建立 1.1 Equinox是什么 从代码角度来看,Equinox其实就是OSGi核心标准的完整实现,并且还在这个基础上增加了一些额外的功能(比如为框架增加了命令行和程序执行的入 ...
- 我的Git之旅(1)---git安装、github注册以及一些基本命令
蚂蚁作为一个混码农届的新人来说,看到什么东西都觉得高大上的感觉.最近接触到了git,有种蠢蠢欲动的感觉,想 试一把.因此开启了我的Git之旅.废话不多说,开始我的git之旅. 1.git服务器的选择 ...
- OSGI框架—HelloWorld小实例
OSGi(Open Service Gateway Initiative)技术是Java动态化模块化系统的一系列规范.OSGi一方面指维护OSGi规范的OSGI官方联盟,另一方面指的是该组织维护的基于 ...
- Linux文件基本命令
Linux文件基本命令学习 操作技巧: 输入文件/目录/命令的前几个字母之后,按下tab键,则自动补全 按上/下,回滚曾经用过的命令 不想执行命令使用:crtl + c 基础命令: ls(查看) 基础 ...
- Docker环境安装,基本命令集合
一.docker安装 1).卸载旧的安装包 centos7默认安装的docker版本是1.13.1,卸载它,安装新的版本. root用户下,一次把这坨命令复制进去 yum remove docker ...
- Docker安装与基本命令
docker安装 Ubuntu 更新apt包索引 sudo apt-get update 更新apt包索引 sudo apt-get upgrade 安装docker sudo apt-get ins ...
随机推荐
- ASIHTTPRequest-Cookie的使用[转]
ASIHTTPRequest允许你使用全局存储来和所有使用CFNetwork或者NSURLRequest接口的程序共享cookie. 如果设置useCookiePersistence为YES(默认值) ...
- Hello_Depth_Perception 任务二:Project Tango采集深度感知数据
Java API Depth Perception Tutorial深度感知教程 Configuration 配置信息 In order to use depth perception, your T ...
- [label][Smarty]Smarty使用心得
Smarty模板引擎,使用smarty好处就是可以实现页面缓存,从而加快了初始化之后的页面访问速度. 某种程度上,smarty模板确保了template页面的代码整洁,避免了HTML标记与PHP的混合 ...
- 更改mysql默认字符集 (转载)
1. service mysqld stop,停用mysql. 2. cp /etc/my.cnf /etc/my.cnf.bak,修改前做备份,这是个好习惯. 修改my.cnfvi /etc/my. ...
- MSP430 G2553 LaunchPad设置GPIO
一. 背景知识:逻辑运算符的使用 当程序初始化时,对于复位状态有不确定性的寄存器(如PxOUT),建议采用直接赋值:其他情况下最好使用逻辑运算符修改寄存器. 直接赋值 REGISTER = 0b111 ...
- WPF 平板上按钮点击不触发,鼠标点击触发的两种解决方法
今天运行在windows平板上的程序,有个功能是弹出子窗体,点弹出窗体的关闭按钮,要点好几次才能触发.网上找了找,也有人与我类似的情形. 解决方法如下: public static void Disa ...
- StringBudiler源码简单解析
StringBudiler源码 继承关系树 底层实现 默认容量() 特别的添加方法(append) 1.继承关系树 继承自AbstractStringBuilder与StringBuffer同族 2. ...
- Elasticsearch(八)【NEST高级客户端--Mapping映射】
要使用NEST与Elasticsearch进行交互,我们需要能够将我们的解决方案中的POCO类型映射到存储在Elasticsearch中的反向索引中的JSON文档和字段.本节介绍NEST中可用的所有不 ...
- Elasticsearch NEST – Examples for mapping between Query and C#
Elasticsearch NEST – Examples for mapping between Query and C# During my training with Elasticsearch ...
- 【vue】——vue.js 获取当前 自定义属性值
假设有一个标签h5, 我们给它添加了一个自定义属性值,(item.id是从动态添加的) 点击h5 标签,如何才能获取当前对应的自定义属性值呢? 想当然的我最开始这样写: <h5 class=&q ...