Java学习 - Maven - 常用命令(学习精选)

前言

在上一篇文章中,我们对 Maven 有了初步的了解,包括它的定义、安装步骤以及一些基本的配置方法。Maven 是一个强大的项目管理工具,它可以帮助开发者自动化构建过程,并且管理项目的依赖关系。

今天,我们将深入探讨 Maven 的核心概念,并学习一些在日常使用中非常实用的命令。

Maven 核心

构建

所谓构建,就是指项目的构建,它是面向过程的,是一系列步骤的总和,主要包括项目代码的编译、运行、测试、打包以及部署等等。而 Maven 所支持的构建主要有如下几种:

  1. 清理:删除之前编译产生的文件,为新的代码编译做好准备;
  2. 编译:将源代码编译为执行代码,支持批量编译;
  3. 测试:通过执行测试代码,验证功能是否正常,而且它也是支持批量测试的;
  4. 报告:通过执行测试,生成测试结果的文件;
  5. 打包:讲项目中的 class 文件、配置文件打包到一个压缩文件中。对于一般程序,打包的压缩文件扩展名通常是 .jar,而对于 Web 应用,则起压缩文件扩展名通常是 .war
  6. 安装:把打包好的文件安装到本地仓库;
  7. 部署:让程序跑起来。

Maven 核心概念

  1. pom:项目对象模型,Maven 将项目当做一个模型,用于控制 Maven 构建项目的过程,通过它来管理 jar 依赖;
  2. 目录结构:Maven 的目录和文件位置都是约定俗成的;
  3. 坐标:用于表示资源的唯一标识;
  4. 依赖管理:使用 jar 文件来管理项目;
  5. 仓库管理:资源存放的路径;
  6. 生命周期:Maven 工具构建项目的过程;
  7. 插件和目标:执行 Maven 构建是的工具就是插件
  8. 继承
  9. 聚合

常用命令

Maven 中的一些常见命令如下:

命令含义功能
mvn clean清理用于清理已编译好的文件
mvn compile编译将 Java 源代码编译成字节码 .class 文件
mvn test测试项目测试
mvn package打包根据用户配置,将项目打包为 jar 包或 war
mvn install安装手动向本地仓库安装一个 jar
mvn deploy上传jar 上传到私服

利用 Archetype 来生成项目骨架

实际上,为了更快捷的创建 Maven 项目骨架,我们可以使用 maven archetype 来创建,创建过程如下:

  1. 首先进入你要创建项目骨架的目录,然后执行如下命令:
mvn archetype:generate
  1. 然后会有很长的输出,有多种可用的 Archetype 供你选择,选择你所需要的,然后输入对应编号即可;

在这里插入图片描述

  1. 接着会让你输入 groupIdartifactIdversionpackage 等信息;

在这里插入图片描述

  1. 再接着让你确认相关信息;

在这里插入图片描述

  1. 最后确认无误后,回车生成即可。

项目结构

项目生成后的目录中主要包含如下文件:

在这里插入图片描述

其中 src 目录包含了项目的主代码和资源,同时还包括了测试相关的代码以及资源。而 pom.xml 则定义了项目的所有配置。

假设我们有一个 HelloWorld 的项目,我们利用 Maven 来进行管理时,其项目结构大致应该是如下:

HelloWorld/| ----src/ || -------- || main/ || ----- ||     |  | java/ |
| --- ||     | resources/ |
| --- | ---------- || test/ |
| ----- ||     | java/ |
| --- ||  |resources/|----pom.xml

其中 HelloWorld 是根目录,也就是我们的工程名,而 src 目录下主要是存放源代码,其下有主要分为 javaresourcesjava 目录主要用于存放程序包以及程序包中的 Java 文件,resources 目录则是存放程序中所要使用的配置文件。

test 目录结构同 src,只不过顾名思义,这里主要是存放用于测试的代码和配置文件,而且这不是一个必选项,我们可以根据自己的需要进行选择。

最后则是 pom.xml,这个每个 Maven 所管理项目的核心文件,这是必须的,后续的依赖管理等工作都基于此文件来操作。

在这里插入图片描述

在这里插入图片描述

最后

如果觉得内容有帮助,可以通过点赞和关注来支持作者。同时,作者也预告了下一期内容,将深入探讨如何使用 Maven 进行依赖管理,这是一个对于任何 Maven 用户来说都非常重要的话题。

通过今天的学习,读者应该对 Maven 的使用有了更深入的了解,包括如何执行基本的构建命令,如何利用 Archetype 生成项目,以及 Maven 项目的目录结构。这些知识对于提高开发效率和项目质量都是非常有价值的。期待下一期内容,继续深入了解 Maven 的强大功能。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/850397.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

上位机图像处理和嵌入式模块部署(f407 mcu和其他mcu品类的选择)

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing 163.com】 很多朋友读书的时候学的是stm32,工作中用的也是stm32。这本来问题不大,但是过去两三年的经历告诉我们,mcu的使用…

【设计模式】行为型设计模式之 职责链模式,探究过滤器、拦截器、Mybatis插件的底层原理

一、介绍 职责链模式在开发场景中经常被用到,例如框架的过滤器、拦截器、还有 Netty 的编解码器等都是典型的职责链模式的应用。 标准定义 GOF 定义:将请求的发送和接收解耦,让多个接收对象都有机会处理这个请求,将这些接收对象…

k8s小型实验模拟

(1)Kubernetes 区域可采用 Kubeadm 方式进行安装。(5分) (2)要求在 Kubernetes 环境中,通过yaml文件的方式,创建2个Nginx Pod分别放置在两个不同的节点上,Pod使用hostPat…

Java | Leetcode Java题解之第139题单词拆分

题目&#xff1a; 题解&#xff1a; public class Solution {public boolean wordBreak(String s, List<String> wordDict) {Set<String> wordDictSet new HashSet(wordDict);boolean[] dp new boolean[s.length() 1];dp[0] true;for (int i 1; i < s.len…

JimuReport 积木报表 v1.7.52 版本发布,免费的低代码报表

项目介绍 一款免费的数据可视化报表工具&#xff0c;含报表和大屏设计&#xff0c;像搭建积木一样在线设计报表&#xff01;功能涵盖&#xff0c;数据报表、打印设计、图表报表、大屏设计等&#xff01; Web 版报表设计器&#xff0c;类似于excel操作风格&#xff0c;通过拖拽完…

智能变电站网络报文记录及故障录波分析装置

是基于Intel X86、PowerPC、FPGA等技术的高度集成化的硬件平台&#xff0c;采用了高性能CPU无风扇散热、网络数据采集、高速数据压缩存储加密等多种技术&#xff0c;实现了高性能计算、多端口同步高速数据采集、数据实时分析、大容量数据存储等功能。 ● 在满足工业标准的同时&…

数据结构 -- 树状数组

前言 树状数组或二叉索引树&#xff08;Binary Indexed Tree&#xff09;&#xff0c;又以其发明者命名为 Fenwick 树。其初衷是解决数据压缩里的累积频率的计算问题&#xff0c;现多用于高效计算数列的前缀和、区间和。它可以以 O(logn) 的时间得到任意前缀和。并同时支持在 …

Kali Linux 2024.2 释出

渗透测试发行版 Kali Linux 释出了最新的 2024.2。 主要新特性包括&#xff1a;桌面环境更新到 GNOME 46&#xff0c;Xfce 环境加入 HiDPI 模式&#xff0c;更新了网络侦察工具 AutoRecon&#xff0c;监视 Linux 进程的命令行工具 pspy&#xff0c;提取和显示 CVE 信息的 Splo…

项目验收总体计划书(实际项目验收原件参考Word)

测试目标&#xff1a;确保项目的需求分析说明书中的所有功能需求都已实现&#xff0c;且能正常运行&#xff1b;确保项目的业务流程符合用户和产品设计要求&#xff1b;确保项目的界面美观、风格一致、易学习、易操作、易理解。 软件全套文档过去进主页。 一、 前言 &#xff0…

Unity 编辑器扩展,获取目录下所有的预制件

先看演示效果 实现方案 1创建几个用于测试的cube 2&#xff0c;创建一个Editor脚本 3&#xff0c;编写脚本内容 附上源码 using UnityEditor; using UnityEngine;public class GetPrefeb : EditorWindow {private string folderPath "Assets/Resources"; // 指定预…

[FSCTF 2023]Tea_apk

得到密文和密钥 import base64 from ctypes import c_uint32import libnumDELTA 0x9E3779B9def decrypt(v, n, k):rounds 6 int(52 / n)sum c_uint32(rounds * DELTA)y v[0].valuewhile rounds > 0:e (sum.value >> 2) & 3p n - 1while p > 0:z v[p …

Django 连接mysql数据库配置

1&#xff0c;提前创建注册的app1应用 Test/Test/settings.py python manage.py startapp app1 2&#xff0c;配置mysql数据库连接 Test/Test/settings.py DATABASES {default: {ENGINE: django.db.backends.mysql,# 数据库名字NAME: db1,# 连接mysql数据库用户名USER: ro…

Python 基于阿里云的OSS对象存储服务实现本地文件上云框架

Python 基于阿里云的OSS对象存储服务实现将文件上云框架 文章目录 Python 基于阿里云的OSS对象存储服务实现将文件上云框架一、前言二、阿里云配置1、获取用户AKEY和AKeySecret2、创建Bucket 三、Python 阿里云oss上云框架1、安装oss2依赖库2、阿里云oss python 一、前言 未来…

2024年CKA模拟系统制作 | step-by-step | 1、基础环境准备

目录 一、软件环境 二、虚拟网络环境准备 1、编辑虚拟网络 2、网络设置 三、新建虚拟主机 1、新建目录 2、新建虚拟主机 四、系统安装 1、装载系统镜像 2、开启虚拟机 3、选择语言 4、键盘选择 5、网络配置 6、代理设置 7、设置软件源 8、存储设置 9、名称设置 …

摆脱Jenkins - 使用google cloudbuild 部署 java service 到 compute engine VM

在之前 介绍 cloud build 的文章中 初探 Google 云原生的CICD - CloudBuild 已经介绍过&#xff0c; 用cloud build 去部署1个 spring boot service 到 cloud run 是很简单的&#xff0c; 因为部署cloud run 无非就是用gcloud 去部署1个 GAR 上的docker image 到cloud run 容…

42【Aseprite 作图】梅花盆栽——拆解

1 花盆 是高度比较低的盆&#xff0c;只有一个下2&#xff1b;上面分两个 1 2 盆边缘颜色深&#xff0c;上面靠近外面的颜色浅&#xff0c;正面颜色稍微深一点&#xff0c;画两条竖的浅色线&#xff0c;作为装饰 2 花盆中的沙石 沙子颜色深一点&#xff0c;中间有浅一点的线…

[office] excel工作表数据分级显示 #其他#笔记

excel工作表数据分级显示 如下图1所示的工作表数据&#xff0c;我们按东区、西区、南区、北区来建立分级显示。 图1 这里先利用“创建组”命令建立分级显示。选取单元格区域A3:E5&#xff0c;单击功能区“数据”选项卡“分级显示”组中的“创建组——创建组…”命令&#xff…

【c语言】qsort函数及泛型冒泡排序的模拟实现

&#x1f31f;&#x1f31f;作者主页&#xff1a;ephemerals__ &#x1f31f;&#x1f31f;所属专栏&#xff1a;C语言 目录 一、qsort函数 1.回调函数 2.qsort函数 3.void* 指针 二、泛型冒泡排序的模拟实现 1.比较函数的编写 2.交换函数的编写 3.冒泡排序的编写 4…

JWT 快速入门

什么是 JWT JSON Web Token&#xff08;JWT&#xff09;是目前最流行的跨域身份验证解决方案 JSON Web Token Introduction - jwt.ioLearn about JSON Web Tokens, what are they, how they work, when and why you should use them.https://jwt.io/introduction 一、常见会…

APP单页分发源码下载安卓苹果自动识别apk描述文件免签自动安装

下载地址&#xff1a;APP单页分发源码下载安卓苹果自动识别apk描述文件免签自动安装