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

举报
轻狂书生FS 发表于 2020/11/30 22:40:59 2020/11/30
5k+ 0 0
【摘要】 上一篇只是简单介绍了一下maven入门的一些相关知识,这一篇主要是体验一下Maven高度自动化构建项目的过程 一、创建Maven项目 1.1、建立Hello项目   1、首先建立Hello项目,同时建立Maven约定的目录结构和pom.xml文件 Hello | --src | -----main | ----------java | ----------resou...

上一篇只是简单介绍了一下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/xdp-gacl/p/4051690.html

文章来源: blog.csdn.net,作者:LookForDream_,版权归原作者所有,如需转载,请联系作者。

原文链接:blog.csdn.net/LookForDream_/article/details/83832300

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

作者其他文章

评论(0

抱歉,系统识别当前为高风险访问,暂不支持该操作

    全部回复

    上滑加载中

    设置昵称

    在此一键设置昵称,即可参与社区互动!

    *长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

    *长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。