Maven的POM常用標(biāo)簽詳解
摘要
本文介紹maven中pom常用標(biāo)簽作用和用法。
核心部分
<!-- 依賴的集合 -->
<dependencies>
<!-- 具體某個(gè)依賴 -->
<dependency>
<!-- 組織或項(xiàng)目的頂級(jí)域名,通常為反向域名 -->
<groupId>com.alibaba</groupId>
<!-- 項(xiàng)目名稱,通常與項(xiàng)目模塊名一致 -->
<artifactId>easyexcel</artifactId>
<!-- 項(xiàng)目版本號(hào),遵循語(yǔ)義化版本規(guī)范 ${}讀取屬性值 也可寫(xiě)死4.0.3 -->
<version>${easyexcel.version}</version>
<!-- jar包的類型,默認(rèn)jar -->
<type>jar</type>
<!-- 默認(rèn)作用域。表示該依賴在項(xiàng)目的編譯、測(cè)試、運(yùn)行等所有階段都可用,且會(huì)被打包到最終的項(xiàng)目產(chǎn)物中 -->
<scope>compile</scope>
<!-- 此依賴是否可選,可選依賴不會(huì)被傳遞到依賴該項(xiàng)目的其他項(xiàng)目中 -->
<optional>true</optional>
<!-- 排除依賴的集合 -->
<exclusions>
<!-- 具體某個(gè)排除的坐標(biāo) 這里不寫(xiě)版本號(hào),跟隨依賴版本-->
<exclusion>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml-schemas</artifactId>
</exclusion>
</exclusions>
</dependency>
</dependencies>
父模塊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 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<!-- 父模塊 -->
<!-- 模型版本 -->
<modelVersion>4.0.0</modelVersion>
<!-- 組織或項(xiàng)目的頂級(jí)域名,通常為反向域名 -->
<groupId>org.coffeebeans</groupId>
<!-- 項(xiàng)目名稱,通常與項(xiàng)目模塊名一致 -->
<artifactId>myproject</artifactId>
<!-- 項(xiàng)目版本號(hào),遵循語(yǔ)義化版本規(guī)范 -->
<version>1.0.0</version>
<!-- 打包方式,父模塊這里是pom -->
<packaging>pom</packaging>
<!-- 子模塊列表 -->
<modules>
<!-- 具體模塊 -->
<module>pom-use</module>
</modules>
<!-- 自定義屬性 可定義全局通用屬性和管理版本-->
<properties>
<!-- 編譯jdk版本 -->
<maven.compiler.source>8</maven.compiler.source>
<!-- 運(yùn)行jdk版本 -->
<maven.compiler.target>8</maven.compiler.target>
<!-- 編碼 -->
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<!-- 統(tǒng)一管理依賴版本 -->
<spring-boot.version>2.7.18</spring-boot.version>
</properties>
<!-- 統(tǒng)一管理依賴 -->
<dependencyManagement>
<!-- 統(tǒng)一管理依賴版本 -->
<dependencies>
<!-- 具體依賴 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-dependencies</artifactId>
<version>${spring-boot.version}</version>
<!-- 指定依賴是一個(gè)pom文件,而不是一個(gè)jar文件。這通常用于依賴管理(例如,導(dǎo)入其他pom文件中的依賴管理部分)-->
<type>pom</type>
<!-- 此依賴僅用于<dependencyManagement>中導(dǎo)入其他 POM 文件中的依賴管理,但本身不會(huì)被傳遞 -->
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<!-- 項(xiàng)目依賴的存儲(chǔ)庫(kù)地址 -->
<repositories>
<repository>
<id>public</id>
<name>aliyun nexus</name>
<url>https://maven.aliyun.com/repository/public</url>
<!-- 默認(rèn)true,啟用從該存儲(chǔ)庫(kù)獲取正式版本的依賴 -->
<releases>
<enabled>true</enabled>
</releases>
</repository>
</repositories>
</project>
子模塊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 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<!-- 子模塊 -->
<!-- 模型版本 -->
<modelVersion>4.0.0</modelVersion>
<!-- 繼承的父pom及識(shí)別坐標(biāo) -->
<parent>
<groupId>org.coffeebeans</groupId>
<artifactId>myproject</artifactId>
<version>1.0.0</version>
</parent>
<!-- 項(xiàng)目名 -->
<name>pom-use</name>
<!-- 項(xiàng)目描述 -->
<description>演示項(xiàng)目依賴標(biāo)簽的使用</description>
<!-- 打包方式,默認(rèn)jar,可以是pom,jar,war -->
<packaging>jar</packaging>
<!-- 當(dāng)前pom的id,通常與項(xiàng)目模塊名一致 -->
<artifactId>pom-use</artifactId>
<!-- 自定義屬性 可定義全局通用屬性和管理版本-->
<properties>
<!-- 編譯jdk版本 -->
<maven.compiler.source>8</maven.compiler.source>
<!-- 運(yùn)行jdk版本 -->
<maven.compiler.target>8</maven.compiler.target>
<!-- 編碼 -->
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<!-- 統(tǒng)一管理依賴版本 -->
<easyexcel.version>4.0.3</easyexcel.version>
</properties>
<!-- 依賴的集合 -->
<dependencies>
<!-- 具體某個(gè)依賴 -->
<dependency>
<!-- 組織或項(xiàng)目的頂級(jí)域名,通常為反向域名 -->
<groupId>com.alibaba</groupId>
<!-- 項(xiàng)目名稱,通常與項(xiàng)目模塊名一致 -->
<artifactId>easyexcel</artifactId>
<!-- 項(xiàng)目版本號(hào),遵循語(yǔ)義化版本規(guī)范 ${}讀取屬性值 也可寫(xiě)死4.0.3 -->
<version>${easyexcel.version}</version>
<!-- jar包的類型,默認(rèn)jar -->
<type>jar</type>
<!-- 默認(rèn)作用域。表示該依賴在項(xiàng)目的編譯、測(cè)試、運(yùn)行等所有階段都可用,且會(huì)被打包到最終的項(xiàng)目產(chǎn)物中 -->
<scope>compile</scope>
<!-- 此依賴是否可選,可選依賴不會(huì)被傳遞到依賴該項(xiàng)目的其他項(xiàng)目中 -->
<optional>true</optional>
<!-- 排除依賴的集合 -->
<exclusions>
<!-- 具體某個(gè)排除的坐標(biāo) 這里不寫(xiě)版本號(hào),跟隨依賴版本-->
<exclusion>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml-schemas</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
<version>2.3</version>
<!-- 此依賴僅在編譯和測(cè)試時(shí)需要,運(yùn)行時(shí)由容器提供,不會(huì)被打包到最終的項(xiàng)目產(chǎn)物中 -->
<scope>provided</scope>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.29</version>
<!-- 此依賴僅在運(yùn)行和測(cè)試時(shí)需要,編譯時(shí)不需要,會(huì)打包到最終的項(xiàng)目產(chǎn)物中 -->
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<!-- 僅在測(cè)試編譯和測(cè)試運(yùn)行時(shí)使用,不會(huì)被打包到最終的項(xiàng)目產(chǎn)物中,也不會(huì)被傳遞到依賴該項(xiàng)目的其他項(xiàng)目中。-->
<scope>test</scope>
</dependency>
</dependencies>
<!-- 構(gòu)建的集合 -->
<build>
<!-- 打包后的文件名 -->
<finalName>pom-use</finalName>
<!-- 插件的集合 -->
<plugins>
<!-- 打包插件 -->
<plugin>
<!-- 組織或項(xiàng)目的頂級(jí)域名,通常為反向域名 -->
<groupId>org.springframework.boot</groupId>
<!-- 項(xiàng)目名稱,通常與項(xiàng)目模塊名一致 -->
<artifactId>spring-boot-maven-plugin</artifactId>
<!-- 項(xiàng)目版本號(hào),遵循語(yǔ)義化版本規(guī)范 ${}讀取屬性值 也可寫(xiě)死2.7.11 -->
<version>2.7.11</version>
<!-- 插件的配置 -->
<configuration>
<!-- 啟用fork,表示測(cè)試代碼將在一個(gè)新的 JVM 進(jìn)程中運(yùn)行,而不是在 Maven 運(yùn)行的當(dāng)前 JVM 中運(yùn)行 -->
<fork>true</fork>
<!-- 打包后的輸出目錄 -->
<outputDirectory>../pom-use</outputDirectory>
</configuration>
<!-- 插件的執(zhí)行 -->
<executions>
<!-- 具體執(zhí)行項(xiàng) -->
<execution>
<!-- 目標(biāo) -->
<goals>
<goal>repackage</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
<!-- 環(huán)境配置 -->
<profiles>
<!-- 開(kāi)發(fā)環(huán)境 -->
<profile>
<id>dev</id>
<properties>
<profiles.active>dev</profiles.active>
<!-- 其他配置,如端口-->
<port>1000</port>
</properties>
<!-- 默認(rèn)激活 -->
<activation>
<activeByDefault>true</activeByDefault>
</activation>
</profile>
<!-- 生產(chǎn)環(huán)境 -->
<profile>
<id>prod</id>
<properties>
<profiles.active>prod</profiles.active>
<port>2000</port>
</properties>
</profile>
<!-- 測(cè)試環(huán)境 -->
<profile>
<id>test</id>
<properties>
<profiles.active>test</profiles.active>
<port>3000</port>
</properties>
</profile>
</profiles>
</project>
總結(jié)
以上我們了解了maven中pom里常用標(biāo)簽作用和用法。更多相關(guān)Maven POM常用標(biāo)簽內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Mybatis Properties 配置優(yōu)先級(jí)詳解
這篇文章主要介紹了Mybatis Properties 配置優(yōu)先級(jí),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-07-07
IntellJ idea使用FileWatch實(shí)時(shí)編譯less文件的方法
這篇文章主要介紹了IntellJ idea使用FileWatch實(shí)時(shí)編譯less文件的相關(guān)資料,需要的朋友可以參考下2018-02-02
pom.xml中解決Provides?transitive?vulnerable?dependency?mave
這篇文章主要介紹了在pom.xml中如何解決Provides?transitive?vulnerable?dependency?maven:org.yaml:snakeyaml:1.33警告問(wèn)題,需要的朋友可以參考下2023-06-06
SpringBoot整合Mybatis與druid實(shí)現(xiàn)流程詳解
這篇文章主要介紹了springboot整合mybatis plus與druid詳情,文章圍繞主題展開(kāi)詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的下伙伴可以參考一下2022-10-10
SpringBoot快速搭建web項(xiàng)目詳細(xì)步驟總結(jié)
這篇文章主要介紹了SpringBoot快速搭建web項(xiàng)目詳細(xì)步驟總結(jié) ,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-12-12
實(shí)例分析Java Class的文件結(jié)構(gòu)
今天把之前在Evernote中的筆記重新整理了一下,發(fā)上來(lái)供對(duì)java class 文件結(jié)構(gòu)的有興趣的同學(xué)參考一下2013-04-04
Activiti進(jìn)階之組任務(wù)實(shí)現(xiàn)示例詳解
這篇文章主要為大家介紹了Activiti進(jìn)階之組任務(wù)實(shí)現(xiàn)示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-08-08
Java編程發(fā)展歷史(動(dòng)力節(jié)點(diǎn)Java學(xué)院整理)
Java的歷史可以追溯到1991年4月,Sun公司的James Gosling領(lǐng)導(dǎo)的綠色計(jì)劃(Green Project)開(kāi)始著力發(fā)展一種分布式系統(tǒng)結(jié)構(gòu),使其能夠在各種消費(fèi)性電子產(chǎn)品上運(yùn)行,他們使用了C/C++/Oak語(yǔ)言。由于多種原因,綠色計(jì)劃逐漸陷于停滯狀態(tài)2017-03-03
Spring?Boot?集成?MyBatis?全面講解(最新推薦)
MyBatis 是一款優(yōu)秀的持久層框架,與 Spring Boot 集成后可以大大簡(jiǎn)化開(kāi)發(fā)流程,本文將全面講解如何在 Spring Boot 中集成 MyBatis,包括環(huán)境配置、基礎(chǔ)操作、高級(jí)功能和最佳實(shí)踐,需要的朋友可以參考下2024-12-12

