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 ...
随机推荐
- B-spline Curves 学习之B样条曲线的移动控制点、修改节点分析(7)
B-spline Curves: Moving Control Points 本博客转自前人的博客的翻译版本,前几章节是原来博主的翻译内容,但是后续章节博主不在提供翻译,后续章节我在完成相关的翻译学习 ...
- Android-自定义开关(ViewGroup版)
虽然实现自定义开关,通常情况下都是继承View,比较合理方便快捷一些 但是我今天想去继承ViewGroup来实现自定义开关来玩玩 效果图: 布局代码: <!-- 自定义开关ViewGroup版 ...
- ubuntu16.04 安装jdk 错误解决
错误 $ apt-get install openjdk-9-jdk Errors were encountered while processing: /var/cache/apt/archives ...
- [react001] 使用webpack自动构建react 项目
1.react 简介 React 是一个Facebook出品的前端UI开发框架.react官方的tutorials 为了让人容易上手,并没有给在平常工作使用react的详细配置,随意学习的深入,你为了 ...
- JAVA环境下利用solrj二次开发SOlR搜索的环境部署常见错误
问题一:出现控制台坏的响应错误一Bad request 控制台出现错误如下: Bad Request request: http://hostIP:8983/solr/update?wt=javabi ...
- CVE-2018-7600 Drupal核心远程代码执行漏洞分析
0x01 漏洞介绍 Drupal是一个开源内容管理系统(CMS),全球超过100万个网站(包括政府,电子零售,企业组织,金融机构等)使用.两周前,Drupal安全团队披露了一个非常关键的漏洞,编号CV ...
- SQL表连接查询inner join left join right join full join ...
一.最常见的连接查询 select s.name,m.mark from student s,mark m where s.id=m.studentid. 二.内连接-inner join sel ...
- [Java]java内存及数据区
Java运行时的数据区包括:(其中前两个是线程共享的) 1.方法区(Method Area) 存储已被虚拟机加载的类信息.常量.静态变量.即时编译器编译后的代码等数据 2.堆(Heap) 存放对象实例 ...
- C#之工厂
工厂在我看来分为三种分别都是简单工厂,工厂方法,和抽象工厂,这三种都是将使用和创建分开的一种模式 接下来我来介绍一下我理解的简单工厂模式: 在平时我们需要使用生产对象的一个类当我们需要new 一个对象 ...
- django系列5.3--ORM数据库的多表操作
首先来创建一个模型,数据库的关系就清楚了 models.py from django.db import models # Create your models here. class Author( ...