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)目的測(cè)試源碼目錄,默認(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)目測(cè)試代碼編譯輸出目錄,默認(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ù)制到主代碼編譯輸出目錄中,將測(cè)試資源文件復(fù)制到測(cè)試代碼編譯輸出目錄中。
Maven默認(rèn)的主資源目錄和測(cè)試資源目錄的定義是在超級(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)文章
Java案例實(shí)現(xiàn)不重復(fù)的隨機(jī)數(shù)
這篇文章主要介紹了Java案例實(shí)現(xiàn)不重復(fù)的隨機(jī)數(shù),通過創(chuàng)建Set集合對(duì)象,可以使用HashSet也可以使用TreeSet,區(qū)別在于TreeSet是排序后的,創(chuàng)建隨機(jī)數(shù)對(duì)象,獲取一個(gè)隨機(jī)數(shù)去重等操作,需要的朋友可以參考一下2022-04-04
還在用if(obj!=null)做非空判斷,帶你快速上手Optional
這篇文章主要介紹了還在用if(obj!=null)做非空判斷,帶你快速上手Optional,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-05-05
mybatis如何對(duì)大量數(shù)據(jù)的游標(biāo)查詢
這篇文章主要介紹了mybatis如何對(duì)大量數(shù)據(jù)的游標(biāo)查詢問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-01-01
SpringBoot整合阿里?Druid?數(shù)據(jù)源的實(shí)例詳解
這篇文章主要介紹了SpringBoot整合阿里?Druid?數(shù)據(jù)源,主要講解了手動(dòng)配置方法,結(jié)合實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-11-11
利用Spring Boot如何開發(fā)REST服務(wù)詳解
這篇文章主要給大家介紹了關(guān)于利用Spring Boot如何開發(fā)REST服務(wù)的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧。2017-12-12

