pom文件中${project.basedir}的使用
${project.basedir}的使用
<project> 是 pom.xml 的根節(jié)點(diǎn),project.basedir 就是根節(jié)點(diǎn)的下級(jí)節(jié)點(diǎn),缺少配置的話就要自己定義一個(gè)。
這塊配置就是定義自己的項(xiàng)目目錄結(jié)構(gòu)
Maven的六類屬性,${project.basedir},${project.build.directory}
內(nèi)置屬性
主要有兩個(gè)常用內(nèi)置屬性:basedir項(xiàng)目的根目錄(包含pom.xml文件的目錄),{basedir}項(xiàng)目的根目錄(包含pom.xml文件的目錄),basedir項(xiàng)目的根目錄(包含pom.xml文件的目錄),{version}項(xiàng)目版本
POM屬性
用戶可以使用該屬性引用POM文件中對(duì)應(yīng)元素的值
常用的POM屬性包括:
${project.build.sourceDirectory}
:項(xiàng)目的主源碼目錄,默認(rèn)為 src/main/java${project.build.testSourceDirectory}
:項(xiàng)目的測試源碼目錄,默認(rèn)為 src/test/java${project.build.directory}
:項(xiàng)目構(gòu)件輸出目錄,默認(rèn)為 target/${project.outputDirectory}
:項(xiàng)目主代碼編譯輸出目錄,默認(rèn)為 target/classes/${project.testOutputDirectory}
:項(xiàng)目測試代碼編譯輸出目錄,默認(rèn)為 target/test-classes/${project.groupId}
:項(xiàng)目的 groupId${project.artifactId}
:項(xiàng)目的 artifactIdproject.version
:項(xiàng)目的version,與{project.version}:項(xiàng)目的 version,與project.version:項(xiàng)目的version,與{version}等價(jià)project.build.fianlName
:項(xiàng)目打包輸出文件的名稱。默認(rèn)為{project.build.fianlName}:項(xiàng)目打包輸出文件的名稱。默認(rèn)為project.build.fianlName:項(xiàng)目打包輸出文件的名稱。默認(rèn)為{project.artifactId}-${project.version}
自定義屬性
用戶可以在POM的元素下自定義Maven屬性
Settings屬性
用戶使用settings.開頭的屬性引用 settings.xml 文件中XML元素的值
Java系統(tǒng)屬性
所有Java系統(tǒng)屬性都可以使用Maven屬性引用
環(huán)境變量屬性
所有環(huán)境變量都可以使用以env.開頭的Maven屬性引用
在依賴中 使用pom變量
<dependencies> ? ? <dependency> ? ? ? ? <groupId>${project.groupId}</groupId> ? ? ? ? <artifactId>part-a</artifactId> ? ? ? ? <version>${project.version}</version> ? ? </dependency> ? ? <dependency> ? ? ? ? <groupId>${project.groupId}</groupId> ? ? ? ? <artifactId>part-b</artifactId> ? ? ? ? <version>${project-version}</version> ? ? </dependency> </dependencies>
在插件中使用pom變量
<plugin> ? ? <groupId>org.apache.maven.plugins</groupId> ? ? <artifactId>maven-surefire-plugin</artifactId> ? ? <version>2.5</version> ? ? <configuration> ? ? ? ? <repositoryDirectory>${project.build.directory}/test-reports</repositoryDirectory> ? ? </configuration> </plugin>
自定義變量
?<properties> ? ? ?<db.driver>com.mysql.jdbc.Driver</db.driver> ? ? ?<db.url>jdbc:mysql://localhost:3360/test</db.url> ? ? ?<db.username>username</db.username> ? ? ?<db.password>password></db.password> ?</properties> </profiles>
Maven屬性默認(rèn)只有在POM中才會(huì)被解析,因此需要讓Maven解析資源文件中的Maven屬性。Maven用maven-resources-plugin處理資源文件。它默認(rèn)的行為只是將項(xiàng)目主資源文件復(fù)制到主代碼編譯輸出目錄中,將測試資源文件復(fù)制到測試代碼編譯輸出目錄中。
Maven默認(rèn)的主資源目錄和測試資源目錄的定義是在超級(jí)POM中,要為資源目錄開啟過濾,只要在此基礎(chǔ)上添加一行filtering配置即可。
Filtering是maven resource插件的功能,作用是用環(huán)境變量,pom文件里定義的屬性和指定文件里的屬性替換屬性文件的占位符。(超級(jí)pom在 apache-maven-3.3.9\lib\maven-model-builder-3.3.9.jar\org\apache\maven\model\pom-4.0.0.xml)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Spring MVC溫故而知新系列教程之請(qǐng)求映射RequestMapping注解
這篇文章主要介紹了Spring MVC溫故而知新系列教程之請(qǐng)求映射RequestMapping注解的相關(guān)知識(shí),文中給大家介紹了RequestMapping注解提供的幾個(gè)屬性及注解說明,感興趣的朋友跟隨腳本之家小編一起學(xué)習(xí)吧2018-05-05簡單了解SpringMVC緩存對(duì)靜態(tài)資源有什么影響
這篇文章主要介紹了簡單了解SpringMVC緩存對(duì)靜態(tài)資源有什么影響,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-09-09Java?Api實(shí)現(xiàn)Elasticsearch的滾動(dòng)查詢功能
這篇文章主要介紹了Java?Api實(shí)現(xiàn)Elasticsearch的滾動(dòng)查詢,解決ES每次只能查詢一萬條數(shù)據(jù)的問題,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下2023-08-08java中面向?qū)ο蟮母拍罴爸R(shí)點(diǎn)總結(jié)
在本篇文章里小編給大家整理的是一篇關(guān)于java中面向?qū)ο蟮母拍罴爸R(shí)點(diǎn)總結(jié)內(nèi)容,有興趣的朋友們可以參考下。2021-01-01Spring boot實(shí)現(xiàn)文件上傳功能
這篇文章主要為大家詳細(xì)介紹了Spring boot實(shí)現(xiàn)文件上傳功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-06-06Java軟件生產(chǎn)監(jiān)控工具Btrace使用方法詳解
這篇文章主要介紹了Java軟件生產(chǎn)監(jiān)控工具Btrace使用方法詳解,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-07-07Java中基于推、拉模式的sentinel規(guī)則持久化詳解
這篇文章主要介紹了Java中基于推、拉模式的sentinel規(guī)則持久化詳解,推模式是sentinelDashboard?把規(guī)則推給Nacos,Nacos監(jiān)聽規(guī)則的變化推給微服務(wù),拉模式是sentinelDashboard?把規(guī)則直接給微服務(wù),?Nacos定時(shí)的同步微服務(wù)端的規(guī)則,需要的朋友可以參考下2023-09-09