你了解 pom.xml 吗

简介: 你了解 pom.xml 吗

你了解pomxml吗

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

这篇干货查漏补缺。

首先我们创建个 springboot 项目

都选了默认设置:

我把这篇完整粘贴出来

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>

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

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

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

  • <version>:定义项目版本。
  • <name><description>:项目的名称和描述。

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

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

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

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

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

  • <dependencyManagement>:当一个 POM 有多个模块时,我们可以在父 POM 中通过 dependencyManagement 元素来管理子模块中的版本。
  • <build>:这部分包含了项目构建相关的信息,如源码路径、插件配置等。

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

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

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

目录
相关文章
|
消息中间件 分布式计算 Hadoop
Kafka安装部署
Kafka安装部署
367 1
|
负载均衡 Java API
深入了解Spring Cloud Netflix:构建微服务架构的利器
在当今快速发展的软件开发领域,微服务架构已经成为了构建高度可伸缩、灵活性强的应用程序的首选方式。然而,微服务架构也带来了一系列的挑战,包括服务发现、负载均衡、容错处理、配置管理等问题。Spring Cloud Netflix是一组用于构建分布式系统的开源工具,它基于Netflix的一些开源项目,为开发人员提供了强大的解决方案,帮助他们轻松地构建和管理微服务应用程序。本文将深入介绍Spring Cloud Netflix的主要组件以及它们如何帮助开发人员构建稳健的微服务架构。
|
6月前
|
监控 API 开发工具
HarmonyOS Next的HiLog日志系统完全指南:从入门到精通
本文深入解析HarmonyOS Next的HiLog日志系统,涵盖日志级别、核心API、隐私保护与高级回调功能,助你从入门到精通掌握这一重要开发工具。
390 1
|
传感器
基于Arduino的自动浇灌系统
基于Arduino的自动浇灌系统
710 1
|
5月前
|
搜索推荐 小程序 数据可视化
网站用户访问分析入门:新手必懂的6个关键指标
如果你正在运营一个网站,无论是产品官网还是电商平台,用户访问分析一定是绕不开的一项工作。 但对很多刚入门的新手来说,打开一个数据平台,常常是一脸懵: PV?UV?跳出率?这些到底是什么?要看哪些指标才有用? 这篇文章,我们一起看看网站访问分析中最基础的6个核心指标,帮你快速理解并掌握基本的分析能力。
1114 0
|
XML Java 测试技术
【SpringBoot】基于 Maven 的 pom.xml 配置详解
【SpringBoot】基于 Maven 的 pom.xml 配置详解
1987 0
【SpringBoot】基于 Maven 的 pom.xml 配置详解
|
SQL 安全 数据挖掘
牛客网刷题之SQL篇:非技术快速入门39T
这篇文章是关于牛客网上的SQL刷题教程,涵盖了基础的SQL运算符和多个实际的数据分析场景,旨在帮助非技术人员快速入门SQL。
678 0
牛客网刷题之SQL篇:非技术快速入门39T