maven 在执行package,install,deploy时使用clean与不使用clean的不同之处

yizhihongxing

Maven 是一种流行的项目管理工具,它以项目对象模型 (POM) 为基础,提供了一种标准化的方式来构建和管理项目。在执行 Maven 中的几个主要操作时,包括 package、install、deploy 等,我们可以使用 clean 来清理之前编译的产物,或者不使用 clean 来直接构建产物。使用或者不使用 clean 的主要区别在于编译产物是否被清理,以下是完整攻略。

一、使用 Maven 中的 clean(清理已编译的产物)

当我们使用 Maven 构建项目时,它会在项目的 target 目录下生成一些编译产物,例如 jar 文件或者 war 文件等。有时候,我们可能需要重新构建这些产物,例如需要重新打成一个 jar 文件,或者重新生成文档等等。

那么,在这种情况下,我们可以使用 Maven 中的 clean 命令来删除之前编译的产物,然后重新构建。具体命令为:

mvn clean package

使用了 clean 命令后,Maven 会删除 target 目录下的所有编译产物,并重新构建项目,生成新的编译产物。

以下是一个示例,当我们在命令行中执行 mvn clean package 命令时,Maven 会执行以下步骤:

  • 删除之前编译的产物,包括 target 目录下的所有文件;
  • 编译项目,生成新的编译产物;
  • 将编译产物打成一个 jar 文件。
$ mvn clean package

[INFO] Scanning for projects...
[INFO] 
[INFO] ---------------< com.example:my-project >----------------
[INFO] Building my-project 1.0-SNAPSHOT
[INFO] --------------------------------[ jar ]-----------------
[INFO] 
[INFO] --- maven-clean-plugin:2.5:clean (default-clean) @ my-project ---
[INFO] Deleting /path/to/my-project/target
[INFO] 
[INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ my-project ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] skip non existing resourceDirectory /path/to/my-project/src/main/resources
[INFO] 
[INFO] --- maven-compiler-plugin:3.1:compile (default-compile) @ my-project ---
[INFO] Nothing to compile - all classes are up to date
[INFO] 
[INFO] --- maven-resources-plugin:2.6:testResources (default-testResources) @ my-project ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] skip non existing resourceDirectory /path/to/my-project/src/test/resources
[INFO] 
[INFO] --- maven-compiler-plugin:3.1:testCompile (default-testCompile) @ my-project ---
[INFO] No sources to compile
[INFO] 
[INFO] --- maven-surefire-plugin:2.12.4:test (default-test) @ my-project ---
[INFO] No tests to run.
[INFO] 
[INFO] --- maven-jar-plugin:2.4:jar (default-jar) @ my-project ---
[INFO] Building jar: /path/to/my-project/target/my-project-1.0-SNAPSHOT.jar
[INFO] 
[INFO] --- maven-install-plugin:2.4:install (default-install) @ my-project ---
[INFO] Installing /path/to/my-project/target/my-project-1.0-SNAPSHOT.jar to /home/user/.m2/repository/com/example/my-project/1.0-SNAPSHOT/my-project-1.0-SNAPSHOT.jar
[INFO] Installing /path/to/my-project/pom.xml to /home/user/.m2/repository/com/example/my-project/1.0-SNAPSHOT/my-project-1.0-SNAPSHOT.pom
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  4.921 s
[INFO] Finished at: 2022-01-01T00:00:00+08:00
[INFO] ------------------------------------------------------------------------

在以上示例中,我们可以看到使用 clean 命令后,之前编译的产物被删除,然后重新编译并打包成了一个 jar 文件。

二、不使用 Maven 中的 clean(不清理已编译的产物)

如果我们不使用 Maven 中的 clean 命令,而是直接执行 package、install 或者 deploy 命令,那么之前编译的产物将不会被清理,而是直接使用之前编译的产物进行下一步的操作。

以下是一个示例,当我们在命令行中执行 mvn package 命令时,Maven 不会清理之前编译的产物,而是直接使用之前编译的产物进行下一步操作。

$ mvn package

[INFO] Scanning for projects...
[INFO] 
[INFO] ---------------< com.example:my-project >----------------
[INFO] Building my-project 1.0-SNAPSHOT
[INFO] --------------------------------[ jar ]-----------------
[INFO] 
[INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ my-project ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] skip non existing resourceDirectory /path/to/my-project/src/main/resources
[INFO] 
[INFO] --- maven-compiler-plugin:3.1:compile (default-compile) @ my-project ---
[INFO] Nothing to compile - all classes are up to date
[INFO] 
[INFO] --- maven-resources-plugin:2.6:testResources (default-testResources) @ my-project ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] skip non existing resourceDirectory /path/to/my-project/src/test/resources
[INFO] 
[INFO] --- maven-compiler-plugin:3.1:testCompile (default-testCompile) @ my-project ---
[INFO] No sources to compile
[INFO] 
[INFO] --- maven-surefire-plugin:2.12.4:test (default-test) @ my-project ---
[INFO] No tests to run.
[INFO] 
[INFO] --- maven-jar-plugin:2.4:jar (default-jar) @ my-project ---
[INFO] Building jar: /path/to/my-project/target/my-project-1.0-SNAPSHOT.jar
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  4.921 s
[INFO] Finished at: 2022-01-01T00:00:00+08:00
[INFO] ------------------------------------------------------------------------

在以上示例中,我们可以看到在没有使用 clean 命令的情况下,Maven 不会清理之前编译的产物,而是直接使用之前编译的产物进行下一步操作。

综上所述,我们在执行 Maven 的 package、install、deploy 等操作时,可以使用或者不使用 clean 命令,具体是否需要清理之前编译的产物,要根据实际情况来判断。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:maven 在执行package,install,deploy时使用clean与不使用clean的不同之处 - Python技术站

(0)
上一篇 2023年5月19日
下一篇 2023年5月19日

相关文章

  • Java Maven高级之插件开发详解

    Java Maven高级之插件开发详解 什么是Maven插件 Maven插件是Maven框架中的一种机制,它通过扩展Maven的功能来满足个性化的需求。本质上,Maven插件就是一个打包好的jar包,它定义了自己的goal,当我们执行Maven命令时,可以通过指定goal来触发插件的执行。 Maven插件的类型 Maven插件可以分为两种:build插件和r…

    Java 2023年5月20日
    00
  • JAVA如何把数据库的数据处理成树形结构

    对于将数据库中的数据处理成树形结构,大致可以分为以下三步: 从数据库中获取原始数据 将原始数据转化为树形结构数据 将树形结构数据渲染到前端页面 1.从数据库中获取原始数据 我们首先要从数据库中获取原始数据,一般情况下,我们可以通过使用JDBC操作数据库实现该功能。 示例代码如下: import java.sql.Connection; import java…

    Java 2023年5月20日
    00
  • java springboot的概述、特点与构建介绍

    Java Spring Boot的概述、特点与构建介绍 1. 概述 Spring Boot是一个基于Spring框架的快速开发应用程序的工具。它提供了一种快速、便捷的方式来创建基于Spring的应用程序,同时也提供了一些默认的配置和约定,使得开发人员可以更加专注于业务逻辑的实现。 2. 特点 Spring Boot具有以下特点: 快速开发:Spring Bo…

    Java 2023年5月15日
    00
  • Spring Security认证机制源码层探究

    Spring Security认证机制源码层探究 Spring Security是一个基于Spring框架的安全认证授权框架,它提供了一套完善的安全认证授权解决方案,提供了一系列的安全机制,例如用户名和密码认证、记住我、自动登录、动态权限控制、强制访问控制、会话管理等。 Spring Security认证机制基本原理 Spring Security的认证机制…

    Java 2023年5月20日
    00
  • IntelliJ IDEA2021.1 配置大全(超详细教程)

    IntelliJ IDEA是一款非常优秀的Java开发工具,大大提高了开发效率,但是初次使用可能会遇到各种问题,因此我们编写了IntelliJ IDEA2021.1配置的超详细教程,帮助您快速上手。 1. 下载与安装 首先需要下载安装IntelliJ IDEA,您可以通过官网(https://www.jetbrains.com/idea/download/)…

    Java 2023年5月20日
    00
  • SSH框架网上商城项目第16战之Hibernate二级缓存处理首页热门显示

    首先对于这个攻略的标题,我们可以进行分析理解。 “SSH框架网上商城项目”:这个部分是指网上商城项目所使用的技术框架或开发方式,其中SSH框架通常指的是Spring + Struts2 + Hibernate。 “第16战”:这个部分是指在整个项目中,这是第16个完成的模块或任务。 “Hibernate二级缓存处理”:这个部分是指在这个模块中,我们要讲解的是…

    Java 2023年5月20日
    00
  • java对数组进行排序的方法

    以下是Java对数组进行排序的方法的完整攻略。 1. Java中的排序方法 Java提供了一系列快速且易用的排序方法,可用于对数组进行排序: Arrays.sort(int[] arr): 对整形数组进行快速排序; Arrays.sort(char[] arr): 对字符数组进行快速排序; Arrays.sort(double[] arr): 对双精度浮点型…

    Java 2023年5月20日
    00
  • 深入介绍Java对象初始化

    深入介绍Java对象初始化 Java对象初始化指的是在创建对象后对其进行初始化的过程。其中,对象初始化包含了对象成员变量的初始化和执行构造器方法的操作。 对象成员变量的初始化 对象成员变量(非静态成员变量)可以在创建对象之前或者在构造器方法中进行初始化。其中,非静态成员变量可以归为以下两类: 未经初始化的成员变量 在Java中,成员变量不会自动初始化。如果一…

    Java 2023年5月26日
    00
合作推广
合作推广
分享本页
返回顶部