maven学习:maven 的入门
2.maven 的入门
到目前为止,我们已经大概了解并安装好了Maven,现在,我们开始创建一个最简单的Hello World项目。
2.1 在Idea创建maven项目
创建一个Maven项目也十分简单,选择”Create New Project"
选择”maven”选项,创建一个maven项目
输入项目的groupId,ArtifactId,Version
直接”finish”
此时我们就创建好了一个maven项目,我们看一下maven项目的结构
我们看到src/main/java是放我们的主源代码,src/test/java 是放我们的测试源代码. target是有存放项目构建后的文件和目录,jar包、war包、编译的class文件等。target里的所有内容都是maven构建的时候生成的,pom.xml文件就是我们项目的maven的核心文件, 它是指示 Maven 如何工作的元数据文件,每一个Maven项目在根目录下有一个pom.xml文件.
2.2 pom.xml 文件
下面就是我们在创建maven项目时,所生成的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"><modelVersion>4.0.0</modelVersion><groupId>org.csmf.helloworld</groupId><artifactId>hello-world</artifactId><version>0.0.1-SNAPSHOT</version><packaging>jar</packaging><name>hello-world</name><url>http://maven.apache.org</url><properties><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <maven.compiler.source>1.8</maven.compiler.source><maven.compiler.target>1.8</maven.compiler.target></properties><dependencies><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>3.8.1</version><scope>test</scope></dependency></dependencies>
</project>
代码的第一行是XML头,指定了该xml文档的版本和编码方式。紧接着是project元素,project是所有pom.xml的根元素,它还声明了一些POM相关的命名空间及xsd元素.
根元素下的第一个子元素modelVersion指定了当前POM模型的版本,对于Maven2及Maven 3来说,它只能是4.0.0。
groupId定义了项目属于哪个组,这个组往往和项目所在的组织或公司存在关联,譬如你在googlecode上建立了一个名为myapp的项目,那么groupId就应该是com.googlecode.myapp,如果你的公司是mycom,有一个项目为myapp,那么groupId就应该是com.mycom.myapp。
artifactId定义了当前Maven项目在组中唯一的ID,我们为这个Hello World项目定义artifactId为hello-world
version指定了Hello World项目当前的版本——1.0-SNAPSHOT。SNAPSHOT意为快照,说明该项目还处于开发中,是不稳定的版本。随着项目的发展,version会不断更新,如升级为1.0、1.1-SNAPSHOT、1.1、2.0等等。
name元素声明了一个对于用户更为友好的项目名称,虽然这不是必须的,但我还是推荐为每个POM声明name,Maven产生的文档用。
url元素:项目主页的URL, Maven产生的文档用
properties元素是对项目的一些设置
project.build.sourceEncoding 设置项目源文件的编码
maven.compiler.source 设置编译源代码的jdk版本
maven.compiler.target: 设置生成jar/war使用的jdk版本
dependencies项目引入插件所需要的额外依赖
dependency: 为了能够 build 或运行,一个典型的java project会依赖其他的包,在Maven中,这些被依赖的包就被称为 dependency。
<build><!-- 插件 --><plugins><plugin><groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId><configuration><source>1.8</source> <target>1.8</target> <encoding>UTF-8</encoding></configuration></plugin></plugins></build>
2.3 编写主代码
项目主代码和测试代码不同,项目的主代码会被打包到最终的构件中(比如jar),而测试代码只在运行测试时用到,不会被打包。默认情况下,Maven假设项目主代码位于src/main/java目录,我们遵循Maven的约定,创建该目录,然后在该目录下创建java源文件.
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-cQsRxl9i-1669270636254)(assets/wps24.jpg)]
源文件的代码如下:
public class HelloWorld {public void sayHello(String world){System.out.println("hello: "+world);}
}
这是一个简单的Java类,它有一个sayHello()方法,在控制台输出”hello:XXx””. 代码编写完毕后,我们删除编译输出文件,使用命令`clean`,我们使用Maven进行编译,使用命令`compile `,
我们会得到如下输出:
**注意:输出的信息中没有[error]**就说明编程通过.
2.4 编写测试代码
Maven项目中默认的测试代码目录是src/test/java下的,当我们java的测试都是基于junit的单元测试,那也就是说,我们需要添加junit的依赖,我们在pom,xml文件添加了junit依赖,
<dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.12</version><scope>test</scope>
</dependency>
当我们添加了这个依赖的时候,我们发现在我们项目的”Maven Dependencies”下面就添加了junit的jar包
那我们来编写一个测试类,来测试我们之前写的HelloWorld,测试类的代码如下:
import org.junit.Test;public class TestHelloWorld {@Testpublic void testSayHello(){HelloWorld helloWorld = new HelloWorld();helloWorld.sayHello("Maven");}
}
测试用例编写完毕之后就可以调用Maven执行测试,运行 test
:
测试报告如下:
当看到”BUILD SUCCESS”这说明测试通过.
2.5 项目打包
将项目进行编译、测试之后,下一个重要步骤就是打包(package)。Hello World的POM中没有指定打包类型,使用默认打包类型jar,我们可以简单地执行命令clean package
进行打包,可以看到如下输出:
类似地,Maven会在打包之前执行编译、测试等操作。这里我们看到jar:jar任务负责打包,实际上就是jar插件的jar目标将项目主代码打包成一个名为hello-1-1.0-SNAPSHOT.jar的文件,该文件也位于**target/**输出目录中,它是根据artifact-version.jar规则进行命名的.
我们得到了项目的输出,如果有需要的话,就可以复制这个jar文件到其他项目的Classpath中从而使用HelloWorld类。但是,如何才能让其他的Maven项目直接引用这个jar呢?我们还需要一个安装的步骤,执行 install
:
我们发现,现在这个项目已经安装到我们的本地仓库中了.
Maven常用命令:
mvn archetype:generate :创建 Maven 项目
mvn compile :编译源代码
mvn test-compile :编译测试代码
mvn test : 运行应用程序中的单元测试
mvn site : 生成项目相关信息的网站
mvn clean :清除目标目录中的生成结果
mvn package : 依据项目生成 jar 文件
mvn install :在本地 Repository 中安装 jar
mvn deploy:将jar包发布到远程仓库
mvn eclipse:eclipse :生成 Eclipse 项目文件
maven学习:maven 的入门相关推荐
- Maven学习——maven基础
maven基础 前言 一.maven简介 mave的功能: 二.下载和安装 三.maven的基础概念 1.仓库 2.坐标 3.本地仓库配置 四.制作Maven项目 纯手工制作 插件制作 IDEA制作 ...
- maven 学习---Maven添加远程仓库
默认情况下,Maven从Maven中央仓库下载所有依赖关系.但是,有些库丢失在中央存储库,只有在Java.net或JBoss的储存库远程仓库中能找到. 1. Java.net资源库 添加Java.ne ...
- maven 学习---Maven本地资源库
Maven的本地资源库是用来存储所有项目的依赖关系(插件jar和其他文件,这些文件被Maven下载)到本地文件夹. 很简单,当你建立一个Maven项目,所有相关文件将被存储在你的Maven本地仓库. ...
- Maven学习总结(一)——Maven入门
2019独角兽企业重金招聘Python工程师标准>>> Maven学习总结(一)--Maven入门 一.Maven的基本概念 Maven(翻译为"专家",&quo ...
- Maven学习(一)——Maven入门
为什么80%的码农都做不了架构师?>>> 一.Maven的基本概念 Maven(翻译为"专家","内行")是跨平台的项目管理工具.主要服 ...
- 物流快递系统前、后端+Java语言+SpringBoot项目+MVC三层架构+maven+Mysql+Tomcat+可以用于学习SpringBoot项目入门
物流快递系统前.后端+Java语言+SpringBoot项目+MVC三层架构+Mysql+Tomcat+可以用于学习SpringBoot项目入门 可以用于课程设计.毕业设计的知识点入门学习 提示:此资 ...
- 【maven学习】——(1)简单入门
Maven是一个项目管理工具,它包含了一个项目对象模型 (Project Object Model),一组标准集合,一个项目生命周期(Project Lifecycle),一个依赖管理系统(Depen ...
- Maven学习总结(2)——Maven项目构建过程练习
Maven学习总结(二)--Maven项目构建过程练习 上一篇只是简单介绍了一下maven入门的一些相关知识,这一篇主要是体验一下Maven高度自动化构建项目的过程 一.创建Maven项目 1.1.建 ...
- Maven学习总结(二)——Maven项目构建过程练习
2019独角兽企业重金招聘Python工程师标准>>> Maven学习总结(二)--Maven项目构建过程练习 上一篇只是简单介绍了一下maven入门的一些相关知识,这一篇主要是体验 ...
- Maven学习总结(6)——Maven与Eclipse整合
2019独角兽企业重金招聘Python工程师标准>>> Maven学习总结(六)--Maven与Eclipse整合 一.安装Maven插件 下载下来的maven插件如下图所示:,插件 ...
最新文章
- IJCAI 2020开幕,杰出论文奖、卓越研究奖、约翰·麦卡锡奖等8项大奖公布 | AI日报...
- python mongodb 异步_【转】Python操作MongoDB数据库
- k8s组件说明:主要组件统一说明
- Linux中快捷键的使用,who命令,rm命令,ps命令,cd命令,kill命令,find命令,grep命令,tar命令(gz、tar、bz2),用户管理,vim部分配置,相关命令
- 简单实用的铁道部12306.cn网站自动化登录
- Oracle相关练习
- 机器学习实战(十三)推荐系统(协同过滤 Collaborative Filtering)
- scrapy框架之分布式操作
- oracle安装后再建库,oracle-数据库的安装与建库
- 记录 PHP 缓存区ob
- [C/C++] C++笔试常见问题
- 微型计算机原理实验二,微型计算机原理与接口技术实验指导(第2版)
- 纯CSS的导航下拉菜单
- word文档分栏怎么设置
- A/Btest:组间的差异性检验,统计功效以及反选样本量,附python底层实现代码
- 连接主机名失败但可以连接主机ip,能用ip地址连接却无法用主机名连接,看过来一站解决
- 关于JavaScript的Object所有方法
- RTL8821CS移植过程记录
- Java 模板引擎主流,freemaker ,thymeleaf (技术的介绍,重要是理解)(学成在线day04)
- BSGS 大步小步算法