Maven学习总结(2)——Maven项目构建过程练习
Maven学习总结(二)——Maven项目构建过程练习
上一篇只是简单介绍了一下maven入门的一些相关知识,这一篇主要是体验一下Maven高度自动化构建项目的过程
一、创建Maven项目
1.1、建立Hello项目
1、首先建立Hello项目,同时建立Maven约定的目录结构和pom.xml文件
Hello
| --src
| -----main
| ----------java
| ----------resources
| -----test
| ---------java
| ---------resources
| --pom.xml
2、编辑项目Hello根目录下的pom.xml,添加如下的代码:
1 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 2 xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 3 <modelVersion>4.0.0</modelVersion> 4 <groupId>me.gacl.maven</groupId> 5 <artifactId>Hello</artifactId> 6 <version>0.0.1-SNAPSHOT</version> 7 <name>Hello</name> 8 9 <!--添加依赖的jar包--> 10 <dependencies> 11 <!--项目要使用到junit的jar包,所以在这里添加junit的jar包的依赖--> 12 <dependency> 13 <groupId>junit</groupId> 14 <artifactId>junit</artifactId> 15 <version>4.9</version> 16 <scope>test</scope> 17 </dependency> 18 19 </dependencies> 20 </project>
3、在src/main/java/me/gacl/maven目录下新建文件Hello.java
Hello.java的代码如下:
1 package me.gacl.maven; 2 3 public class Hello { 4 5 public String sayHello(String name){ 6 return "Hello "+name+"!"; 7 } 8 }
4、在/src/test/java/me/gacl/maven目录下新建测试文件HelloTest.java
HelloTest.java的代码如下:
1 package me.gacl.maven; 2 //导入junit的包 3 import org.junit.Test; 4 import static junit.framework.Assert.*; 5 6 public class HelloTest { 7 8 @Test 9 public void testHello(){ 10 Hello hello = new Hello(); 11 String results = hello.sayHello("gacl"); 12 assertEquals("Hello gacl!",results); 13 } 14 }
1.2、使用Maven编译、清理、测试、打包项目
1、使用Maven编译项目,编译项目的命令是:"mvn compile"
打开cmd命令行,
进入Hello项目根目录执行"mvn compile"命令编译项目的java类
编译成功之后,可以看到hello项目的根目录下多了一个【target】文件夹,这个文件夹就是编译成功之后Maven帮我们生成的文件夹,如下图所示:
打开【target】文件夹,可以看到里面有一个【classes】文件夹,如下图所示:
【classes】文件夹中存放的就是Maven我们编译好的java类,如下图所示:
这就是使用Maven自动编译项目的过程。
2、使用Maven清理项目,清理项目的命令是:"mvn clean"
进入Hello项目根目录执行"mvn clean"命令清理项目,清理项目的过程就是把执行"mvn compile"命令编译项目时生成的target文件夹删掉,如下图所示:
3、使用Maven测试项目,测试项目的命令是:"mvn test"
进入Hello项目根目录执行"mvn test"命令测试项目,如下图所示:
测试成功之后,可以看到hello项目的根目录下多了一个【target】文件夹,这个文件夹就是测试成功之后Maven帮我们生成的文件夹,如下图所示:
打开【target】文件夹,可以看到里面有一个【classes】和【test-classes】文件夹,如下图所示:
也就是说,我们执行执行"mvn test"命令测试项目时,Maven先帮我们编译项目,然后再执行测试代码。
4、使用Maven打包项目,打包项目的命令是:"mvn package"
进入Hello项目根目录执行"mvn package"命令测试项目,如下图所示:
打包成功之后,可以看到hello项目的根目录下的【target】文件夹中多了一个Hello-0.0.1-SNAPSHOT.jar,这个Hello-0.0.1-SNAPSHOT.jar就是打包成功之后Maven帮我们生成的jar文件,如下图所示:
5、使用Maven部署项目,部署项目的命令是:"mvn install"
进入Hello项目根目录执行"mvn install"命令测试项目,如下图所示:
安装成功之后,首先会在hello项目的根目录下生成【target】文件夹,打开【target】文件夹,可以看到里面会有Hello-0.0.1-SNAPSHOT.jar,这个Hello-0.0.1-SNAPSHOT.jar就是安装成功之后Maven帮我们生成的jar文件,如下图所示:
除此之外,在我们存放Maven下载下来的jar包的仓库也会有一个Hello-0.0.1-SNAPSHOT.jar,所以Maven安装项目的过程,实际上就是把项目进行【清理】→【编译】→【测试】→【打包】,再把打包好的jar放到我们指定的存放jar包的Maven仓库中,如下图所示:
所以使用"mvn install"命令,就把maven构建项目的【清理】→【编译】→【测试】→【打包】的这几个过程都做了,同时将打包好的jar包发布到本地的Maven仓库中,所以maven最常用的命令还是"mvn install",这个命令能够做的事情最多。
1.2、组合使用Maven的命令
maven的编译,清理,测试,打包,部署命令是可以几个命令同时组合起来使用的,常用的命令组合如下:
1、先清理再编译:"mvn clean compile",如下所示:
还有的就是"mvn clean test","mvn clean package","mvn clean install",这些组合命令都比较常用。
以上就是关于Maven构建项目的各个个过程演示。
二、在别的项目中使用通过Maven安装生成的项目的jar包
在上面,我们使用mvn install命令将hello这个项目打包成了Hello-0.0.1-SNAPSHOT.jar包并且发布到本地的maven仓库E:\repository\me\gacl\maven\Hello\0.0.1-SNAPSHOT中,下面我们来看看如何在别的项目中使用Hello-0.0.1-SNAPSHOT.jar
1、新建HelloFriend项目,同时建立Maven约定的目录结构和pom.xml文件
HelloFriend
| --src
| -----main
| ----------java
| ----------resources
| -----test
| ---------java
| ---------resources
| --pom.xml
如下图所示:
2、编辑项目HelloFriend根目录下的pom.xml,添加如下的代码:
1 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 2 xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 3 <modelVersion>4.0.0</modelVersion> 4 <groupId>me.gacl.maven</groupId> 5 <artifactId>HelloFriend</artifactId> 6 <version>0.0.1-SNAPSHOT</version> 7 <name>HelloFriend</name> 8 9 <!--添加依赖的jar包--> 10 <dependencies> 11 <!--项目要使用到junit的jar包,所以在这里添加junit的jar包的依赖--> 12 <dependency> 13 <groupId>junit</groupId> 14 <artifactId>junit</artifactId> 15 <version>4.9</version> 16 <scope>test</scope> 17 </dependency> 18 <!--项目要使用到Hello的jar包,所以在这里添加Hello的jar包的依赖--> 19 <dependency> 20 <groupId>me.gacl.maven</groupId> 21 <artifactId>Hello</artifactId> 22 <version>0.0.1-SNAPSHOT</version> 23 <scope>compile</scope> 24 </dependency> 25 </dependencies> 26 </project>
3、在src/main/java/me/gacl/maven目录下新建文件HelloFriend.java,如下图所示:
HelloFriend.java的代码如下:
1 package me.gacl.maven; 2 3 import me.gacl.maven.Hello; 4 5 public class HelloFriend { 6 7 public String sayHelloToFriend(String name){ 8 9 Hello hello = new Hello(); 10 String str = hello.sayHello(name)+" I am "+this.getMyName(); 11 System.out.println(str); 12 return str; 13 } 14 15 public String getMyName(){ 16 return "John"; 17 } 18 }
4、在/src/test/java/me/gacl/maven目录下新建测试文件HelloFriendTest.java,如下图所示:
HelloFriendTest.java的代码如下:
1 package me.gacl.maven; 2 3 import static junit.framework.Assert.assertEquals; 4 import org.junit.Test; 5 import me.gacl.maven.Hello; 6 7 public class HelloFriendTest { 8 9 @Test 10 public void tesHelloFriend(){ 11 12 HelloFriend helloFriend = new HelloFriend(); 13 String results = helloFriend.sayHelloToFriend("gacl"); 14 assertEquals("Hello gacl! I am John",results); 15 } 16 }
5、在HelloFriend目录下执行命令"mvn package"测试Hello-0.0.1-SNAPSHOT.jar里面的类是否引用成功,如下所示:
转载于:https://www.cnblogs.com/zhanghaiyang/p/7213614.html
Maven学习总结(2)——Maven项目构建过程练习相关推荐
- Maven学习总结(二)——Maven项目构建过程练习
2019独角兽企业重金招聘Python工程师标准>>> Maven学习总结(二)--Maven项目构建过程练习 上一篇只是简单介绍了一下maven入门的一些相关知识,这一篇主要是体验 ...
- Maven学习总结(十一)——Maven项目对象模型pom.xml文件详解
2019独角兽企业重金招聘Python工程师标准>>> <project xmlns="http://maven.apache.org/POM/4.0.0" ...
- Maven学习总结(四)——Maven核心概念
2019独角兽企业重金招聘Python工程师标准>>> Maven学习总结(四)--Maven核心概念 一.Maven坐标 1.1.什么是坐标? 在平面几何中坐标(x,y)可以标识平 ...
- Maven学习总结(一)——Maven入门
2019独角兽企业重金招聘Python工程师标准>>> Maven学习总结(一)--Maven入门 一.Maven的基本概念 Maven(翻译为"专家",&quo ...
- android Android项目构建过程
今天,简单讲讲android studio如何把写好的工程打包成apk的. 平时开发过程中我们通过android studio编写完成android项目之后直接点击 Run 'app'就可以在buil ...
- maven snapshot依赖 打包_Maven教程2:Maven项目构建过程练习
点击上方"Java技术前线",选择"置顶或者星标" 与你一起成长 上一篇只是简单介绍了一下maven入门的一些相关知识,这一篇主要是体验一下Maven高度自动化 ...
- 项目构建之maven篇:2.HelloWorld项目构建过程
文件结构说明: 项目构建生命周期: 清理 编译 測试 打包 执行 部署 清理与编译 hello\pom.xml POM:Project Object Model,项目对象模型 pom.xml与ant的 ...
- 保姆级神器 Maven,再也不用担心项目构建搞崩了
今天来给大家介绍一款项目构建神器--Maven,不仅能帮我们自动化构建,还能够抽象构建过程,提供构建任务实现:它跨平台,对外提供了一致的操作接口,这一切足以使它成为优秀的.流行的构建工具,从此以后,再 ...
- Spring Cloud云服务架构 - common-service 项目构建过程
2019独角兽企业重金招聘Python工程师标准>>> 我们将对common-service整个项目进行剖析,将整个构建的流程给记录下来,让更多的关注者来参考学习. 首先在构建spr ...
最新文章
- android GLES20 color
- 被七牛云OSS对象存储测试域名回收后正确数据迁移姿势!
- 阅读源代码的一点小技巧
- python 生成html表的报告_pytest文档7-pytest-html生成html报告
- 聚类算法学习指南(二)
- (JAVA)File类2
- 前端工具webpack4.0各个击破——html部分
- [贪心|字符串] leetcode 3 无重复字符的最长子串
- python电子书合集
- C语言编程实例——百钱买百鸡
- 免杀Payload生成工具Veil的下载与使用
- 本科毕业论文多久能写完 计算机,论文初稿几天可以写完-你觉得十天时间能不能写完一篇本科毕业论文?为什么?...
- blast2go windows 下本地化
- STM32对于1997与2007电表数据规约的解析
- SAS Planet+ArcGIS
- wechat 报警的实现方法
- 家常菜做法:熬萝卜粉丝
- Python第二次作业——判断句
- LeetCode680删除一个字符后是否还是回文字符串
- 2016银行卡BIN
热门文章
- 读书--编写高质量代码 改善C#程序的157个建议2
- 《高性能javascript》读书笔记
- 推荐一款好用的搜索引擎(kngine)
- linux splash qt,ubuntu14.04 splash安装
- iOS 11开发教程(九)iOS11数据线连接真机测试
- iOS子构建Debug运行正常Release运行失败,提示证书问题
- html css 表格自动高度,html – 表格单元格(IE)中的Textarea CSS {height:100%}
- 乐山市2021年高考成绩查询,四川乐山2021年普通高考报名人数 实际高考参考人数...
- ssm项目jsp加载不出来图片_16. SSM 搭建
- 求马鞍点java_二维数组马鞍点求解算法