pom.xml文件中的${}變量從哪里傳值

在 Maven 的 pom.xml 文件中,${} 格式的變量(稱為屬性占位符)的值來源主要有以下幾種途徑:


1. ?內置屬性(Maven 預定義)??

  • ${project.basedir}:項目根目錄
  • ${project.version}:項目版本
  • ${project.groupId}:項目 Group ID
  • ${maven.build.timestamp}:構建時間戳
  • 完整列表見 Maven Properties Reference。

2. ?**pom.xml 內自定義屬性**?

<properties> 標簽中定義:

<properties><java.version>17</java.version><spring.version>5.3.10</spring.version>
</properties>

使用時:${java.version}${spring.version}


3. ?父 POM 繼承的屬性?

如果項目繼承自父 POM(如 Spring Boot Starter Parent):

<parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>3.1.0</version>
</parent>

父 POM 中定義的屬性(如 ${java.version})會自動繼承。


4. ?Settings.xml 文件中的屬性?

在 Maven 的全局配置文件 ~/.m2/settings.xml 或項目級 settings.xml 中定義:

<settings><profiles><profile><properties><env>production</env></properties></profile></profiles>
</settings>

使用時:${env}


5. ?命令行動態傳入?

通過 -D 參數在構建命令中傳遞:

mvn clean install -Dcustom.property=value

pom.xml 中直接使用 ${custom.property}


6. ?環境變量?

系統環境變量可通過 env. 前綴訪問:

<!-- 獲取操作系統環境變量 -->
<property><path>${env.PATH}</path> 
</property>

7. ?資源過濾(Resource Filtering)??

src/main/resources 目錄下的文件(如 application.properties)中定義屬性,并通過資源過濾傳遞到 pom.xml

<build><resources><resource><directory>src/main/resources</directory><filtering>true</filtering></resource></resources>
</build>

優先級順序(高 → 低):

  1. ?命令行參數?(-Dproperty=value
  2. pom.xml 中的 <properties>
  3. 父 POM 中的屬性
  4. settings.xml 中的屬性
  5. 環境變量
  6. 內置屬性

檢查屬性值來源

  • 通過 mvn help:effective-pom 命令查看最終生效的 POM(包含所有屬性解析結果)。
  • 在構建時添加 -X 參數(調試模式)查看詳細解析過程:
    mvn clean install -X

通過以上途徑,Maven 在構建時會動態替換 pom.xml 中的所有 ${} 占位符。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/915069.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/915069.shtml
英文地址,請注明出處:http://en.pswp.cn/news/915069.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

【人工智能】項目案例分析:使用TensorFlow進行大規模對象檢測

????歡迎大家來到我們的天空???? ?? 作者簡介:我們的天空 ??《頭銜》:大廠高級軟件測試工程師,阿里云開發者社區專家博主,CSDN人工智能領域新星創作者。 ??《博客》:人工智能,深度學習,機器學習,python,自然語言處理,AIGC等分享。 所屬的專欄:TensorF…

C++---cout、cerr、clog

在C編程里&#xff0c;cout、cerr和clog是標準庫提供的重要輸出流對象&#xff0c;在數據輸出方面發揮著關鍵作用。 一、cout&#xff1a;標準輸出流 cout 是 std::ostream 類的對象&#xff0c;其作用是向標準輸出設備&#xff08;一般是控制臺&#xff09;輸出數據。它和 C 語…

脈沖神經網絡(Spiking Neural Network, SNN)與知識蒸餾(Knowledge Distillation, KD)

目錄 脈沖神經網絡&#xff08;Spiking Neural Network, SNN&#xff09; 知識蒸餾&#xff08;Knowledge Distillation, KD&#xff09; 三種類別 三種變體 脈沖神經網絡&#xff08;Spiking Neural Network, SNN&#xff09; 收到生物神經系統的啟發&#xff0c;設計的&a…

使用Java完成下面項目

第一題&#xff1a;從控制臺輸入十個學生的成績&#xff0c;使用list集合來保存數據&#xff0c; 遍歷并打印其中成績不及格的成績&#xff0c;打印最高成績&#xff0c;最低成績&#xff0c;并計算及格率代碼如下public class Home1 {public static void main(String[] args) …

龍虎榜——20250718

上證指數今天上漲收陽線&#xff0c;繼續在5天均線保持強勢上漲&#xff0c;個股下跌稍多&#xff0c;大盤股上漲為主。深證指數收小陽線&#xff0c;繼續在5天均線上&#xff0c;總體保持強勢&#xff0c;調整更多是小票。2025年7月18日龍虎榜行業方向分析1. 醫藥醫療? 代表標…

2025年華為認證之HCIE-云計算方向的報考流程

一、先搞明白&#xff1a;HCIE - 云計算認證到底是啥&#xff1f; HCIE - 云計算&#xff08;華為認證 ICT 專家 - 云計算&#xff09;是華為體系里云計算領域的頂級認證&#xff0c;說白了&#xff0c;就是證明你有能力搞定大型企業的云平臺設計、部署和運維。現在政企、金融…

什么是私有化部署企業即時通訊?吱吱企業即時通訊安全嗎?

在企業數字化轉型加速的今天&#xff0c;溝通工具的選擇已經從滿足簡單溝通&#xff0c;升級為“安全、高效、可控”。其中&#xff0c;“私有化部署企業即時通訊”成為許多中小型企業、跨國企業以及數據敏感型企業的核心需求。 那么&#xff0c;究竟什么是私有化部署&#xff…

Vue3 中使用 Element Plus 實現自定義按鈕的 ElNotification 提示框

在 Vue3 項目中&#xff0c;我們經常會用到 ElNotification 作為消息提醒組件&#xff0c;尤其是在異步操作、任務完成或用戶需要交互確認時。然而&#xff0c;Element Plus 默認的 Notification 是非交互式的&#xff0c;不能直接嵌入按鈕或事件。 今天我們來實現一個帶自定義…

下載webrtc M114版本源碼只能使用外網googlesource源-命令版

聲網、國內源都不行&#xff0c;只能外網googlesource源&#xff01;&#xff01;&#xff01; 二、創建 Ubuntu 容器&#xff08;帶目錄掛載&#xff09; 拉取Ubuntu鏡像 docker pull ubuntu:22.04創建并啟動容器&#xff08;掛載Windows目錄到容器&#xff09; docker run -i…

Linux運維新手的修煉手扎之第21天

Nginx服務和Tomcat服務1 負載均衡語法格式&#xff1a;upstream[一個或多個]rootubuntu24-13:~# vim /etc/nginx/conf.d/vhost.confupstream group1 {server 10.0.0.16;}upstream group2 {server 10.0.0.14;}server {listen 80;server_name sswang1.magedu.com;location / {pro…

TrOCR: 基于Transformer的光學字符識別方法,使用預訓練模型

溫馨提示&#xff1a; 本篇文章已同步至"AI專題精講" TrOCR: 基于Transformer的光學字符識別方法&#xff0c;使用預訓練模型 摘要 文本識別是文檔數字化中的一個長期研究問題。現有方法通常基于CNN進行圖像理解&#xff0c;基于RNN進行字符級文本生成。此外&#…

西門子工業軟件全球高級副總裁兼大中華區董事總經理梁乃明先生一行到訪庭田科技

概要2025年6月&#xff0c;西門子工業軟件全球高級副總裁兼大中華區董事總經理梁乃明先生一行到訪我司。庭田科技總經理聶春文攜銷售團隊對西門子代表團表示熱烈歡迎&#xff0c;并就當前業務發展方向及未來行業聚焦領域與代表團展開深入交流。 聶春文總經理及銷售團隊陪同西門…

在 Jenkins 中使用 SSH 部署密鑰

本文檔介紹了如何在 Jenkins 中配置 SSH 部署密鑰&#xff0c;以便更穩定地拉取 Git 倉庫代碼&#xff0c;避免常見的 RPC 錯誤。 1. 背景 在使用 Jenkins 進行持續集成時&#xff0c;常常需要從 Git 倉庫拉取代碼。如果使用 HTTP/HTTPS 協議&#xff0c;有時會遇到 RPC 錯誤&…

小紅書采集工具:無水印圖片一鍵獲取,同步采集筆記與評論

我用python語言開發了一款名為“爬xhs圖片軟件”的工具&#xff0c;該工具不僅能采集圖片&#xff0c;還可獲取筆記數據、評論數據等內容。 軟件界面長這個樣子&#xff1a; 采集到的圖片&#xff1a;演示視頻&#xff1a;https://live.csdn.net/v/485813介紹文章、想你所想&am…

Java行為型模式---命令模式

命令模式基礎概念命令模式&#xff08;Command Pattern&#xff09;是一種行為型設計模式&#xff0c;其核心思想是將請求封裝為一個對象&#xff0c;從而使你可以用不同的請求對客戶進行參數化&#xff0c;對請求排隊或記錄請求日志&#xff0c;以及支持可撤銷的操作。命令模式…

Android性能優化之包體積優化

一、包體積組成與瓶頸分析 1. 典型 APK 結構占比 #mermaid-svg-KEUQMlEifvHlk1CV {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-KEUQMlEifvHlk1CV .error-icon{fill:#552222;}#mermaid-svg-KEUQMlEifvHlk1CV .erro…

開源Web播放器推薦與選型指南

Video.js3&#xff1a;是市面上最流行的免費、開源 HTML5 視頻播放器之一。可用于直播和點播&#xff0c;支持 HLS、DASH、WebM 和 MP4 等多種格式。它可高度自定義&#xff0c;開源社區中有很多皮膚可供選用&#xff0c;還可通過插件配置 Multi - DRM、廣告插入、字幕等功能&a…

sql注入以及Python二分查找

sql注入 /level1.php?name<script>alert(1)</script> "><script>alert(1)</script> οnclickalert(1) " οnclick"alert(1) "><a href"javascript:alert(1)"> "><a HrEf"javascript:alert…

Coze智能體開發實戰-旅游助手

智能體第1步&#xff1a;創建智能體第2步&#xff1a;設置開場白您好&#xff0c;我是廣州長隆野生動物園旅游助手&#xff0c;有什么能夠幫您&#xff1f;1.景點講解 2.行程規劃 3.天氣查詢 4.酒店查詢第3步&#xff1a;創建工作流第4步&#xff1a;添加“意圖識別”行程規劃第…

51c視覺~合集13

自己的原文哦~ https://blog.51cto.com/whaosoft/11685452 #GKGNet 多標簽分類遇上圖卷積網絡ViG 本文提出了第一個完全圖卷積模型&#xff0c;基于分組K近鄰的圖卷積網絡GKGNet&#xff0c;該模型在靈活且統一的圖結構中&#xff0c;同時建模語義標簽嵌入與圖像塊之…