1. 首页
  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

ngmugoujianguochenglianxi_1.png

2、编辑项目Hello根目录下的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>me.gacl.maven</groupId>
   <artifactId>Hello</artifactId>
   <version>0.0.1-SNAPSHOT</version>
   <name>Hello</name>

     <!--添加依赖的jar包-->
     <dependencies>
         <!--项目要使用到junit的jar包,所以在这里添加junit的jar包的依赖-->
         <dependency>
             <groupId>junit</groupId>
             <artifactId>junit</artifactId>
             <version>4.9</version>
             <scope>test</scope>
         </dependency>

     </dependencies>
 </project>

3、在src/main/java/me/gacl/maven目录下新建文件Hello.java

ngmugoujianguochenglianxi_2.png

Hello.java的代码如下:

 package me.gacl.maven;

 public class Hello {

     public String sayHello(String name){
         return "Hello "+name+"!";
     }
 }

4、在/src/test/java/me/gacl/maven目录下新建测试文件HelloTest.java

ngmugoujianguochenglianxi_3.png

HelloTest.java的代码如下:

 package me.gacl.maven;
 //导入junit的包
 import org.junit.Test;
 import static junit.framework.Assert.*;

 public class HelloTest {

     @Test
     public void testHello(){
         Hello hello = new Hello();
         String results = hello.sayHello("gacl");
         assertEquals("Hello gacl!",results);
     }
 }

1.2、使用Maven编译、清理、测试、打包项目

1、使用Maven编译项目,编译项目的命令是:"mvn compile"

打开cmd命令行,

ngmugoujianguochenglianxi_4.png

进入Hello项目根目录执行"mvn compile"命令编译项目的java类

ngmugoujianguochenglianxi_5.png

编译成功之后,可以看到hello项目的根目录下多了一个【target】文件夹,这个文件夹就是编译成功之后Maven帮我们生成的文件夹,如下图所示:

ngmugoujianguochenglianxi_6.png

打开【target】文件夹,可以看到里面有一个【classes】文件夹,如下图所示:

ngmugoujianguochenglianxi_7.png

【classes】文件夹中存放的就是Maven我们编译好的java类,如下图所示:

ngmugoujianguochenglianxi_8.png

这就是使用Maven自动编译项目的过程。

2、使用Maven清理项目,清理项目的命令是:"mvn clean"

  进入Hello项目根目录执行"mvn clean"命令清理项目,清理项目的过程就是把执行"mvn compile"命令编译项目时生成的target文件夹删掉,如下图所示:

ngmugoujianguochenglianxi_9.png

3、使用Maven测试项目,测试项目的命令是:"mvn test"

进入Hello项目根目录执行"mvn test"命令测试项目,如下图所示:

ngmugoujianguochenglianxi_10.png

测试成功之后,可以看到hello项目的根目录下多了一个【target】文件夹,这个文件夹就是测试成功之后Maven帮我们生成的文件夹,如下图所示:

ngmugoujianguochenglianxi_11.png

打开【target】文件夹,可以看到里面有一个【classes】和【test-classes】文件夹,如下图所示:

ngmugoujianguochenglianxi_12.png

也就是说,我们执行执行"mvn test"命令测试项目时,Maven先帮我们编译项目,然后再执行测试代码。

4、使用Maven打包项目,打包项目的命令是:"mvn package"

  进入Hello项目根目录执行"mvn package"命令测试项目,如下图所示:

ngmugoujianguochenglianxi_13.png

ngmugoujianguochenglianxi_14.png

打包成功之后,可以看到hello项目的根目录下的【target】文件夹中多了一个Hello-0.0.1-SNAPSHOT.jar,这个Hello-0.0.1-SNAPSHOT.jar就是打包成功之后Maven帮我们生成的jar文件,如下图所示:

ngmugoujianguochenglianxi_15.png

5****、使用Maven部署项目,部署项目的命令是:"mvn install"

  进入Hello项目根目录执行"mvn install"命令测试项目,如下图所示:

ngmugoujianguochenglianxi_16.png

ngmugoujianguochenglianxi_17.png

安装成功之后,首先会在hello项目的根目录下生成【target】文件夹,打开【target】文件夹,可以看到里面会有Hello-0.0.1-SNAPSHOT.jar,这个Hello-0.0.1-SNAPSHOT.jar就是安装成功之后Maven帮我们生成的jar文件,如下图所示:

ngmugoujianguochenglianxi_18.png

除此之外,在我们存放Maven下载下来的jar包的仓库也会有一个Hello-0.0.1-SNAPSHOT.jar,所以Maven安装项目的过程,实际上就是把项目进行【清理】→【编译】→【测试】→【打包】,再把打包好的jar放到我们指定的存放jar包的Maven仓库中,如下图所示:

ngmugoujianguochenglianxi_19.png

所以使用"mvn install"命令,就把maven构建项目的【清理】→【编译】→【测试】→【打包】的这几个过程都做了,同时将打包好的jar包发布到本地的Maven仓库中,所以maven最常用的命令还是"mvn install",这个命令能够做的事情最多。

1.2、组合使用Maven的命令

maven的编译,清理,测试,打包,部署命令是可以几个命令同时组合起来使用的,常用的命令组合如下:

1、先清理再编译:"mvn clean compile",如下所示:

ngmugoujianguochenglianxi_20.png

还有的就是"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

如下图所示:

ngmugoujianguochenglianxi_21.png

2、编辑项目HelloFriend根目录下的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>me.gacl.maven</groupId>
   <artifactId>HelloFriend</artifactId>
   <version>0.0.1-SNAPSHOT</version>
   <name>HelloFriend</name>

     <!--添加依赖的jar包-->
     <dependencies>
         <!--项目要使用到junit的jar包,所以在这里添加junit的jar包的依赖-->
         <dependency>
             <groupId>junit</groupId>
             <artifactId>junit</artifactId>
             <version>4.9</version>
             <scope>test</scope>
         </dependency>
         <!--项目要使用到Hello的jar包,所以在这里添加Hello的jar包的依赖-->
         <dependency>
             <groupId>me.gacl.maven</groupId>
             <artifactId>Hello</artifactId>
             <version>0.0.1-SNAPSHOT</version>
             <scope>compile</scope>
         </dependency>
     </dependencies>
 </project>

3、在src/main/java/me/gacl/maven目录下新建文件HelloFriend.java,如下图所示:

ngmugoujianguochenglianxi_22.png

HelloFriend.java的代码如下:

 package me.gacl.maven;

 import me.gacl.maven.Hello;

 public class HelloFriend {

     public String sayHelloToFriend(String name){

         Hello hello = new Hello();
         String str = hello.sayHello(name)+" I am "+this.getMyName();
         System.out.println(str);
         return str;
     }

     public String getMyName(){
         return "John";
     }
 }

4、在/src/test/java/me/gacl/maven目录下新建测试文件HelloFriendTest.java,如下图所示:

ngmugoujianguochenglianxi_23.png

HelloFriendTest.java的代码如下:

 package me.gacl.maven;

 import static junit.framework.Assert.assertEquals;
 import org.junit.Test;
 import me.gacl.maven.Hello;

 public class HelloFriendTest {

     @Test
     public void tesHelloFriend(){

         HelloFriend helloFriend = new HelloFriend();
         String results = helloFriend.sayHelloToFriend("gacl");
         assertEquals("Hello gacl! I am John",results);
     }
 }

5、在HelloFriend目录下执行命令"mvn package"测试Hello-0.0.1-SNAPSHOT.jar里面的类是否引用成功,如下所示:

ngmugoujianguochenglianxi_24.png

作者:孤傲苍狼

来源:https://www.cnblogs.com/xdp-gacl/p/4051690.html

看完两件小事

如果你觉得这篇文章对你挺有启发,我想请你帮我两个小忙:

  1. 关注我们的 GitHub 博客,让我们成为长期关系
  2. 把这篇文章分享给你的朋友 / 交流群,让更多的人看到,一起进步,一起成长!
  3. 关注公众号 「方志朋」,公众号后台回复「666」 免费领取我精心整理的进阶资源教程
  4. JS中文网,Javascriptc中文网是中国领先的新一代开发者社区和专业的技术媒体,一个帮助开发者成长的社区,是给开发者用的 Hacker News,技术文章由为你筛选出最优质的干货,其中包括:Android、iOS、前端、后端等方面的内容。目前已经覆盖和服务了超过 300 万开发者,你每天都可以在这里找到技术世界的头条内容。

    本文著作权归作者所有,如若转载,请注明出处

    转载请注明:文章转载自「 Java极客技术学习 」https://www.javajike.com

    标题:Maven学习总结(二)——Maven项目构建过程练习

    链接:https://www.javajike.com/article/1805.html

« Maven学习总结(五)——聚合与继承
Maven学习总结(一)——Maven入门»

相关推荐

QR code