Maven入门(一)(HelloMaven)
2019独角兽企业重金招聘Python工程师标准>>>
每次学习新知识,都从helloworld开始,今天也不例外,hellowrold我来了。
一、Maven项目之核心--------pom.xml
1.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.0http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><!-- 指定当前POM模型版本--><!-- 定义项目属于哪个组,这个组和项目需哦在的组织或公司存在关联 例如:你的公司是kafei;项目名为:.mvnproject;那么groupId就为:com.kafei.mvnproject--><groupId>com.kafei.mvnproject</groupId><!-- 定义当前MAVEN项目在组中唯一的ID--><artifactId>helloworld</artifactId><!-- 指定项目当前的版本,SNAPSHOT为快照的意思,随着项目的发展,版本会不断的更新--><version>1.0-SNAPSHOT</version><!-- 为项目指定更加详细清楚的名称,方便用户更好的阅读理解--><name>Maven Hello World Project</name><!-- 编写代码测试--><!-- 在测试时需要使用到junit,配置好之后,如果是第一次使用MAVEN,则在测试时会从中央仓库下载名为junit_4.11.jar的文件--><dependencies><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.11</version><scope>test</scope></dependency></dependencies>
</project>
注:这段代码中最重要的就是groupId、artifactId、version,这三个元素定了一个项目基本的坐标,
在maven的世界中,都是以这些基本的坐标来进行区分的。
二、编写主要代码(默认Maven假设项目主代码位于src/main/java目录)
a.创建项目主文件夹,这里以helloword进行命名,遵循MAVEN约定,然后在这个文件夹下创建src/main/java目录
b.完成a操作后,在src/main/java目录下创建com/kafei/mvnproject/helloworld/HelloWorld.java
HelloWorld.java:
package com.kafei.mvnproject.helloworld;
public class HelloWorld
{public String sayHello(){return "Hello Maven";}public static void main(String[] args){System.out.print(new HelloWorld().sayHello());}
}
该JAVA类的包名是:com.kafei.mvnproject.helloworld,与之前在pom.xml配置的groupId、artifactId相吻合。
3.编译代码
命令:mvn clean compile
在DOS窗口下,使用CD命令切换到你项目的根目录
如:cd C:\Users\用户名\Desktop\helloworld,然后执行编译命令
执行编译命令后输出如下图:
clean告诉Maven清理输出目录targer,compile告诉Maven编译项目主代码,从上面输出的信息中可以看到Maven首先执行了
clean:clean 任务,删除target/目录。默认情况下,Maven构建的所有输出都在targer目录中,接着执行resources:resources 任务
最后执行compile:compile 任务,将项目主代码编译至target/classes目录。
其中clean:clean、resources:resources、compile:compile对应了一些Maven插件。
注意:在首次使用Maven进行编译项目时,可能会从中央仓库下载一些所需的文件,请耐心等待。
三、编写测试代码
命令:mvn clean test
为了使项目结构清晰,主代码与测试代码应该放在不同的目录中。
Maven项目中默认的主代码目录为src/main/java
Maven项目中默认的测试代码目录为src/test/java,应当先创建该目录,然后在该目录下创建文件HelloWorldTest.java
在上文的pom.xml中我已经增加了测试项目的配置。
主要配置如下:
<!-- 在测试时需要使用到junit,配置好之后,如果是第一次使用MAVEN,则在测试时会从中央仓库下载名为junit_4.11.jar的文件--><dependencies><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.11</version><scope>test</scope></dependency></dependencies>
HelloWorldTest.java:
package com.kafei.mvnproject.helloworld;
import static org.junit.Assert.assertEquals;
import org.junit.Test;
public class HelloWorldTest
{@Testpublic void testSayHello(){HelloWorld helloWorld=new HelloWorld();String result=helloWorld.sayHello();assertEquals("Hello Maven",result);}
}
执行mvn clean test命令测试通过后输出如下测试报告:
注意:在首次使用Maven进行测试项目时,输出的可能比上面的要多,可能会从中央仓库下载一些所需的文件,请耐心等待。
从上面的信息中可以看以看出测试代码通过编译了,编译后的文件为target\test-classes\com\kafei\mvnproject\helloworld\HelloWorldTest.class,
接着surefire:test任务运行并且测试,surefire是maven中负责测试的插件,上图中的信息就是测试报告,可以看出一共运行了多少测试、
失败了多少、出错了多少、跳过了多少,显然测试通过了。
至此Maven从创建项目到编写主代码,然后进行测试已经完了,后续会说明怎么对Maven项目打包和运行。、
源码下载:HelloMaven源码
转载于:https://my.oschina.net/ht896632/blog/628453
Maven入门(一)(HelloMaven)相关推荐
- Maven入门指南⑦:Maven的生命周期和插件
Maven入门指南⑦:Maven的生命周期和插件 一个完整的项目构建过程通常包括清理.编译.测试.打包.集成测试.验证.部署等步骤,Maven从中抽取了一套完善的.易扩展的生命周期.Maven的生命周 ...
- Maven学习总结(一)——Maven入门
2019独角兽企业重金招聘Python工程师标准>>> Maven学习总结(一)--Maven入门 一.Maven的基本概念 Maven(翻译为"专家",&quo ...
- Maven学习(一)——Maven入门
为什么80%的码农都做不了架构师?>>> 一.Maven的基本概念 Maven(翻译为"专家","内行")是跨平台的项目管理工具.主要服 ...
- Maven入门指南(一)
原文链接 译文链接 译者:nkcoder 校对:方腾飞 Maven介绍: Maven是一个强大的Java项目构建工具.当然,你也可以使用其它工具来构建项目,但由于Maven是用Java开发的,因 ...
- Maven入门极简使用教程
Maven入门级别使用 回顾 拦截器 统一异常处理 实现接口的方式. 注解方式.(分享) 如果是ajax请求,会将异常信息发送到客户端的响应中. 复习spring springmvc SS ...
- Maven 入门 (1)—— 安装
Maven 入门 (1)-- 安装 http://blog.csdn.net/kakashi8841/article/details/17371837 1.下载maven安装包 http://mave ...
- Maven入门详解以及Eclisp的集成
1.首先要安装Maven到操作系统上 Maven的下载页面:http://maven.apache.org/download.html Maven跟Tomcat很像,下载下来后直接解压在指定的目录就安 ...
- Hibernate基于Maven入门实例,与MyBatis比对
此篇承接上一篇: MyBatis基于Maven入门实例 准备部分 1. 进入http://mvnrepository.com/ , 搜索 Hibernate ORM, 找到相应的版本后, 可以看到配置 ...
- maven 入门介绍
Maven是什么? Maven: 中文翻译,"专家".基本上有两个用途 一是构建工具, 用来把源代码构建成可发布的构件.类似于ant; 另外一个是项目管理工具. 官方给出的定义是 ...
- 【转】Maven 入门
[转]http://www.blogjava.net/jiangshachina/archive/2006/09/01/67080.html Maven入门--概念与实例 最近由于工作原因在研究.应 ...
最新文章
- Fabrice Bellard:一个人抵得上一个百人团队
- 战胜心理寂寞的六大秘方
- 云原生的五大趋势,K8s安卓化位列其一
- ffplay.c学习-5-视频输出和尺⼨变换
- web app小程序各种客服窗口插件
- 赛锐信息:SAP ABAP 概述
- java println和print_java中的print和println有区别吗
- [转载] Python基础:什么是字符串?字符串是用来做什么的?
- html设置导背景宽度,calc()实现满屏背景定宽内容
- Java高并发编程之第一阶段,多线程基础深入浅出
- 人工智能、机器学习、神经网络和深度学习的关系
- VOA special English 下载 py
- 【DenseFusion代码详解】linemod数据集预处理过程
- 伽罗华有限域_伽罗华域(Galois Field,GF,有限域)乘法运算 - MengBoy的专栏 - CSDN博客...
- 上海php程序员职友集,好程序员WEB前端培训|HTML5培训|H5培训-好程序员官网
- 像“毒液”一样的粘液机器人火了,能取出体内异物,穿过1.5mm细缝无压力!...
- 浅谈微机综合自动化系统在化工企业变电站中应用
- 2021全国人工智能师资培训正式“开课”,百度飞桨助力高校教师提升AI“超能力”...
- 零基础入门智能射频——偶极子天线等效电路模型分析
- 视觉SLAM十四讲——对极约束(2D-2D)笔记
热门文章
- linux的套接口和管道
- quicktime无法安装
- SMO学习笔记(三)——效验数据库备份文件
- mysql错误日志/var/log/mariadb/mariadb.log,二进制日志
- (十二)struts2的类型转换
- Nginx反向代理Tomcat的配置方法
- Axure7.0 以及 中文汉化语言包下载 axure汉化包
- PHP7 RC7 Release对比PHP5.6快速排序20000数据性能体验以及新语法尝鲜
- Sql Server 2005 服务器性能监视[转]
- 使用C#中的ref关键字,用2个简单例子来说明