2019独角兽企业重金招聘Python工程师标准>>>

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://my.oschina.net/zhanghaiyang/blog/595202

Maven学习总结(二)——Maven项目构建过程练习相关推荐

  1. Maven学习总结(2)——Maven项目构建过程练习

    Maven学习总结(二)--Maven项目构建过程练习 上一篇只是简单介绍了一下maven入门的一些相关知识,这一篇主要是体验一下Maven高度自动化构建项目的过程 一.创建Maven项目 1.1.建 ...

  2. Maven学习(二)————Maven核心概念(一)

    引言 Maven 作为项目构建工具,学习成本并不大,但是如果搞不懂它的一些核心概念,使用起来还是不能特别得心应手. Maven的核心概念包括以下这些: 1.约定的目录结构  2.POM  3.坐标  ...

  3. Maven学习总结(十一)——Maven项目对象模型pom.xml文件详解

    2019独角兽企业重金招聘Python工程师标准>>> <project xmlns="http://maven.apache.org/POM/4.0.0" ...

  4. Maven学习总结(四)——Maven核心概念

    2019独角兽企业重金招聘Python工程师标准>>> Maven学习总结(四)--Maven核心概念 一.Maven坐标 1.1.什么是坐标? 在平面几何中坐标(x,y)可以标识平 ...

  5. Maven学习总结(一)——Maven入门

    2019独角兽企业重金招聘Python工程师标准>>> Maven学习总结(一)--Maven入门 一.Maven的基本概念 Maven(翻译为"专家",&quo ...

  6. android Android项目构建过程

    今天,简单讲讲android studio如何把写好的工程打包成apk的. 平时开发过程中我们通过android studio编写完成android项目之后直接点击 Run 'app'就可以在buil ...

  7. 花书+吴恩达深度学习(二十)构建模型策略(超参数调试、监督预训练、无监督预训练)

    目录 0. 前言 1. 学习率衰减 2. 调参策略 3. 贪心监督预训练 4. 贪心逐层无监督预训练 如果这篇文章对你有一点小小的帮助,请给个关注,点个赞喔~我会非常开心的~ 花书+吴恩达深度学习(十 ...

  8. maven snapshot依赖 打包_Maven教程2:Maven项目构建过程练习

    点击上方"Java技术前线",选择"置顶或者星标" 与你一起成长 上一篇只是简单介绍了一下maven入门的一些相关知识,这一篇主要是体验一下Maven高度自动化 ...

  9. 项目构建之maven篇:2.HelloWorld项目构建过程

    文件结构说明: 项目构建生命周期: 清理 编译 測试 打包 执行 部署 清理与编译 hello\pom.xml POM:Project Object Model,项目对象模型 pom.xml与ant的 ...

最新文章

  1. php 变更 obj,php怎么将object转为string
  2. 黑马程序员pink老师前端入门教程,零基础必看的JavaScript基础语法视频教程(一)
  3. 【SSH系列】Hibernate映射 -- 一对多关联映射
  4. python copy 文件,图片等..
  5. zk ui_高级ZK:异步UI更新和后台处理–第1部分
  6. Spring Boot——开发新一代Spring应用
  7. 《我一开口,就能说服所有人》读书随记
  8. 华东师范数学分析第4版笔记和课后答案
  9. 精度、召回率、准确率、F-score
  10. 微信自动打开外部浏览器下载apk文件
  11. AI资源对接需求汇总:第2期
  12. PR软件有哪些辅助功能?Premiere Pro 的辅助功能介绍
  13. 因计算机中丢失msvcr120.dll,msvcr120.dll丢失怎样修复 附解决方法
  14. 细说Java性能测试第三课 性能测试详解2
  15. EditPlus中文版安装链接
  16. GLES2.0中文API-glUseProgram
  17. Latex---IEEE论文写作
  18. 铸铁的弹性模量和泊松比_常用材料弹性模量和泊松比.docx
  19. OpenCV分离图像通道
  20. 五年后,产品经理真的会消失么?

热门文章

  1. 清除右键菜单CMD入口
  2. SIGTERM等信号含义【转】
  3. 获取本机MSSQL保存凭证
  4. SQL FOREIGN KEY 约束
  5. 常用的CSS属性的英文单词总结及用法、解释
  6. 控制结构(1)-判断控制
  7. 2008r2添加没有应用程序服务器,将应用程序移动到服务器2008R2 64位时的AccessViolationException...
  8. java git服务器_Windows平台下Git服务器搭建
  9. 对应生成树的基本回路_数据结构与算法——最小生成树
  10. PowerShell-2.解决禁止本地执行脚本