你了解 pom.xml 吗

你了解pomxml吗

springboot 是 java 利器,几乎每个写 java 的同学都会用,但是你了解 pom.xml 吗?

这篇干货查漏补缺。

首先我们创建个 springboot 项目

image-20240515141415120

都选了默认设置:

image-20240515141503878

我把这篇完整粘贴出来

pom.xml

<?xml version="1.0" encoding="UTF-8"?>
<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 https://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><groupId>com.example</groupId><artifactId>demo</artifactId><version>0.0.1-SNAPSHOT</version><name>demo</name><description>demo</description><properties><java.version>1.8</java.version><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding><spring-boot.version>2.6.13</spring-boot.version></properties><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency></dependencies><dependencyManagement><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-dependencies</artifactId><version>${spring-boot.version}</version><type>pom</type><scope>import</scope></dependency></dependencies></dependencyManagement><build><plugins><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-compiler-plugin</artifactId><version>3.8.1</version><configuration><source>1.8</source><target>1.8</target><encoding>UTF-8</encoding></configuration></plugin><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId><version>${spring-boot.version}</version><configuration><mainClass>com.example.demo.DemoApplication</mainClass><skip>true</skip></configuration><executions><execution><id>repackage</id><goals><goal>repackage</goal></goals></execution></executions></plugin></plugins></build></project>

image-20240515141832844

前面这几个大家一定很熟悉:

  • <project> 是 XML 文档的根元素。
  • <modelVersion>:POM 模型的版本,当前版本是 4.0.0。我们一般不用动
  • <groupId>:定义当前 Maven 项目所属的实际项目组。
  • <artifactId>:定义实际项目模块的名称。

比如导入 fastjson 时,我们会指定 <groupId> <artifactId>

image-20240515142322426

  • <version>:定义项目版本。

  • <name><description>:项目的名称和描述。

这个是开发时自定义的,一般 name 就是项目名称。

image-20240515142447148

  • <properties>:这部分定义了一些用于 POM 文件其他位置的属性值。

故名思思, properties 是项目中用到的一些属性,在这里定义好后,可以在下面引用。

image-20240515142652362

  • <dependencies>:这部分定义了项目所依赖的其他项目。

dependencies 是项目开发中最常修改的地方,因为我们要引入各种各样的依赖。比如 mysqlfastjson 等等外部工具,节省开发时间。

image-20240515142850887

  • <dependencyManagement>:当一个 POM 有多个模块时,我们可以在父 POM 中通过 dependencyManagement 元素来管理子模块中的版本。

  • <build>:这部分包含了项目构建相关的信息,如源码路径、插件配置等。

  • <plugins>:定义了用于项目构建的插件列表。其中,maven-compiler-plugin 是用来编译源代码的,spring-boot-maven-plugin 是 Spring Boot 提供的用来简化 Spring Boot 应用构建和打包的 Maven 插件。这里的 configuration 元素用来配置插件的参数。

image-20240515145153527

这里比较重要的一点是,打包构建后的 jar,入口路径 <mainClass> 。maven 对应的配置。

之前整理过一些 springboot 案例。 https://github.com/Rodert/SpringBoot-javapub.

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

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

相关文章

键盘控制小蛇移动

/*** Description 键盘控制小蛇移动*/ package com.ai.snake;import javax.swing.*;public class StartGame {public static void main(String[] args) {JFrame frame new JFrame();frame.setBounds(10,10,900,720);frame.setResizable(false); //窗口大小不可变frame.setDef…

Termius mac:一站式跨平台终端工具

Termius mac 8.4是一款远程访问和管理工具&#xff0c;旨在帮助用户轻松地远程连接到各种服务器和设备。它适用于多种操作系统&#xff0c;包括Windows、macOS、Linux和移动设备。 该软件提供了一个直观的界面&#xff0c;使用户可以通过SSH、Telnet和Mosh等协议连接到远程设备…

Linux 通过关键字查找文件

按文件名查找 find 路径 -name “文件名” 查找当前目录下的所有mk文件 find . -name "*.mk"按关键字查找 find 路径 -name “文件名” | xargs grep -n “关键字” 参数&#xff1a; xargs 是给命令传递参数的一个过滤器&#xff0c;也是组合多个命令的一个工具 -n…

【挑战全网】最全高德地图充电桩接入指南,流量必火!

分享《一套免费开源充电桩物联网系统&#xff0c;是可以立马拿去商用的&#xff01;》 一、和高德直接互联互通的优势&#xff1a; 1、高德官方直接互联互通&#xff0c;提供给合作商户独立发展自主权&#xff0c;不依赖任何第三方平台; 2、自己控制电站的上线、下线、修改电…

Redis教程(八):Redis中zSet类型的常用命令

zSet操作&#xff1a; 往zSet有序集合中添加数据&#xff0c;1&#xff0c;2&#xff0c;3代表权重&#xff0c;one&#xff0c;two&#xff0c;three代表数据 zadd myzset 1 one 2 two 3 three 查询zSet中所有的值&#xff0c;第一个参数为0代表从小到大排序&#xff0c;为…

MemoryModule - 应用编程细节

文章目录 MemoryModule - 应用编程细节概述笔记实验环境升级MemoryModule&#xff0c;在上下文中加入DLL在内存载入前的信息MemoryModule.hMemoryModule.cpp实现接口MemoryGetPayload() 整理 - 在内存载入的DLL中&#xff0c;取得资源表中的信息&#xff0c;取得载入前的DLL内容…

从0开始理解云原生架构

一、云原生发展历史 云原生概念最早起源于2013年&#xff0c;由 Matt Stine 首次提出“Cloud Native”这一术语&#xff0c;这个概念强调了应用需要充分利用云的优势&#xff0c;如弹性、可扩展性和服务化。2015年&#xff0c;Matt Stine出版了《迁移到云原生架构》一书&am…

ChatGPT官网5月14日凌晨1点发布会推出最新GPT4o大模型,贾维斯时刻要来了?

就在今天北京时间2024年5月14日凌晨1点中&#xff0c;OpenAI进行了发布会&#xff0c;这次发布会的内容炸裂&#xff0c;一起来看下吧&#xff01; GPT4o多模态大模型发布 首先公开的是GPT4o多模态大模型的发布&#xff0c;相较于GPT-4turbo速度更快&#xff0c;更便宜。我刚开…

水离子雾化壁炉与会所的氛围搭配

水离子雾化壁炉在会所的氛围搭配可以营造出舒适、现代和高雅的氛围&#xff0c;以下是一些搭配建议&#xff1a; 豪华会所装饰&#xff1a; 将水离子雾化壁炉作为会所豪华装饰的一部分&#xff0c;放置在会所的核心区域或休息区域。选择适合会所风格的壁炉款式&#xff0c;如…

echarts的柱状图使用

1. 柱状图&#xff08;柱体顶部使用外部图片 相关代码 <template><div class"out-bg"><div class"container" ref"warnChartRef"></div></div> </template><script> import * as echarts from echar…

短视频矩阵系统/源码----可视化剪辑技术独家开发

现阶段市面上大多矩阵软件都非常程序化且需要使用者具有较强的逻辑思维能力或剪辑经验&#xff0c;这使得一些个人、团队、企业在使用时无形中增加了学习成本&#xff0c;剪辑出来的效果大多不尽如人意&#xff0c;发出来的视频没有流量&#xff0c;根本达不到预期效果。 如何提…

绘制奇迹:Processing中的动态图形与动画

&#x1f680; 欢迎回到Processing的世界&#xff0c;你的艺术编程航程刚刚开始。在我们的入门篇中&#xff0c;你已经学会了如何用Processing绘制基本的静态图形。现在&#xff0c;让我们一起探索Processing强大的动态图形和动画功能&#xff0c;释放你的创造力&#xff0c;走…

59.基于SSM实现的网上花店系统(项目 + 论文)

项目介绍 本站是一个B/S模式系统&#xff0c;网上花店是在MySQL中建立数据表保存信息&#xff0c;运用SSMVue框架和Java语言编写。并按照软件设计开发流程进行设计实现充分保证系统的稳定性。系统具有界面清晰、操作简单&#xff0c;功能齐全的特点&#xff0c;使得基于SSM的网…

微信小程序的Vant Weapp组件库 与 weui组件库 的区别?

微信小程序中的Vant Weapp组件库和WeUI组件库是不一样的。虽然它们都提供了丰富的组件和样式&#xff0c;用于帮助开发者快速构建出具有现代感和一致性的小程序界面&#xff0c;但它们在来源、设计理念和组件构成上有所不同。 一、Vant Weapp组件库 &#xff08;1&#xff09…

GSCoolink GSV6125 替LT6711A HDMI2.0转Type-C/DP1.4

GSCoolink GSV6125 在 Type C/Dp monitor&#xff0c;线材&#xff0c;VR/AR&#xff0c;系统均有大量的应用机会&#xff0c;且目前只有龙迅LT6711A 竞争对手。 Gscoolink GSV6125是一款高性能、低功耗的HDMI 2.0转Type-C/DP1.4转换器。通过集成增强型微控制器&#xff0c;GS…

运营商二次放号查询接口如何对接

运营商二次放号查询接口又叫手机二次放号检测接口&#xff0c;指的是输入手机号和日期&#xff0c;查看在该日期之前是不是二次放号。那么运营商二次放号查询接口如何对接呢&#xff1f; 这边我找到了一家叫数脉API的公司&#xff0c;他们刚好有这个接口&#xff0c;首先注册账…

python判断成绩是否优秀

def evaluate_grade(score): if not isinstance(score, (int, float)): raise ValueError("输入的成绩必须是整数或浮点数") if score < 0 or score > 100: raise ValueError("输入的成绩必须在0到100之间") if score > 90: return "优…

react组件渲染性能优化之函数组件-useMemo使用

useMemo的主要作用就是缓存值的&#xff0c;某些时候&#xff0c;组件中某些值需要根据状态进行一个二次计算&#xff08;类似于 Vue 中的计算属性&#xff09;&#xff0c;由于函数组件一旦重新渲染&#xff0c;就会重新执行整个函数&#xff0c;这就导致之前的二次计算也会重…

CSS的基础语法和常见的语法简单归纳

CSS CSS 是层叠样式表&#xff08;Cascading Style Sheets&#xff09;的缩写。它是一种用来控制网页样式和布局的标记语言。通过 CSS&#xff0c;可以定义网页中的元素&#xff08;如文字、图像、链接等&#xff09;的外观和排版方式&#xff0c;包括字体、颜色、大小、间距、…

通义千问接口

接口文档 请求 import random from http import HTTPStatus from dashscope import Generation # 建议dashscope SDK 的版本 > 1.14.0def call_with_messages():messages [{role: system, content: You are a helpful assistant.},{role: user, content: 如何做西红柿炒…