亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Maven中resources標(biāo)簽的用法詳解

 更新時間:2022年01月21日 14:27:13   作者:怪咖軟妹@  
本文主要介紹了Maven中resources標(biāo)簽的用法詳解,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下

在開發(fā)當(dāng)中,我們一般打包都是利用maven打包的,在項目當(dāng)中我們經(jīng)常會看見resources標(biāo)簽,可能很多人對這個標(biāo)簽并不是很理解,本篇文章主要詳細(xì)記錄resources標(biāo)簽的用法。

可能寫的比較多,但是都是我親自做實驗,邊做實驗邊記錄的??赐晗嘈拍憧隙芾斫獾?。

一、resources作用

1、打包編譯作用

在項目當(dāng)中進(jìn)行編譯的時候,他默認(rèn)是不會對某些文件進(jìn)行編譯的,例如在java文件夾下的mybatis當(dāng)中的.xml文件,還有在resources文件夾當(dāng)中有時候會存儲一些資源文件,默認(rèn)有些也是不進(jìn)行編譯的,這里的不進(jìn)行編譯指的是他不會編譯到target文件夾當(dāng)中,并且打包也是。

我們在正常開發(fā)項目的時候,有時候獲取資源是獲取的編譯后的路徑地址,他會在編譯后的路徑找不到文件(target文件夾),就是這個原因。

這時候就需要用到resources標(biāo)簽,在pom.xml添加,告訴maven我這些文件也需要編譯,并且打包的時候需要打包進(jìn)去。

2、配置文件取pom當(dāng)中的值

在現(xiàn)實開發(fā)當(dāng)中,我也遇到過,在pom文件當(dāng)中配置參數(shù),然后通過application.properties使用@@來進(jìn)行取pom的值。假如我不想用application.properties取值,而是用了新創(chuàng)建的比如a.properties取值,這時候就需要在pom當(dāng)中配置resources。

下面經(jīng)過示例直接演示。

二、演示resources打包編譯的作用

1、創(chuàng)建springboot項目

這里我創(chuàng)建了個空項目,然后resources當(dāng)中加了很多空文件,java當(dāng)中也是加了一個文件,pom.xml我是沒有動的,現(xiàn)在開始編譯打包測試。

看看哪些文件在編譯過后,會丟失。

2、進(jìn)行編譯打包

mvn clean install 一下:

這個是編譯后的,可以看出來在java文件夾當(dāng)中,我添加了a.fxml文件,但是編譯過后卻丟了。(注意:這里的fxml文件只是演示,總之不是java文件,也可能xml等文件

3、出現(xiàn)問題

這里我打的jar包,將包解壓之后發(fā)現(xiàn)和target當(dāng)中的classes一模一樣。同樣是缺少那個a.fxml文件。

4、得出結(jié)論

1、假如pom.xml不加resources,編譯出來的會丟失文件,這也就是很多情況下,我們在本地電腦運行沒有問題,但是一旦打包到服務(wù)器,會發(fā)現(xiàn)項目根本跑不起來,缺少各種文件,有時候就是這個原因。

2、target當(dāng)中的classes和打出來的包解壓后的classes是一模一樣的。

5、添加resources進(jìn)行解決

這里的配置代表的是,我要將src/main/java路徑下.fxml文件結(jié)尾的,編譯打包進(jìn)去。

當(dāng)有兩個同類型文件,只想打包進(jìn)去一個文件,可以在include標(biāo)簽當(dāng)中指定文件名稱。

<build>
	<resources>
		<resource>
			<directory>src/main/java</directory>
			<filtering>true</filtering>
	              <includes>
	                  <include>**/*.fxml</include>
	              </includes>
	          </resource>
	</resources>
</build>

添加這個配置之后,再進(jìn)行編譯打包,會發(fā)現(xiàn)以下問題:
view當(dāng)中的文件打包進(jìn)來了,但是resources文件下的文件夾和文件全丟了。

解決

告訴maven,resources文件下的全部要進(jìn)行編譯。

<build>
	<resources>
		<resource>
			<directory>src/main/java</directory>
			<filtering>true</filtering>
            <includes>
                <include>**/*.fxml</include>
            </includes>
        </resource>
		<resource>
			<directory>src/main/resources</directory>
			<filtering>true</filtering>
        </resource>
	</resources>
</build>	

從這里可以看出來,現(xiàn)在我項目當(dāng)中的文件都打包進(jìn)來了。

三、演示application取pom當(dāng)中值

1、創(chuàng)建springboot項目

pom配置文件我添加了一個port設(shè)置。

<properties>
	<java.version>1.8</java.version>
	<port>8081</port>
</properties>

項目里面我添加了一個a.properties文件。a.properties和application.properties當(dāng)中我都設(shè)置了:

server.port=@port@

目的:就是讓配置文件的port去讀pom.xml當(dāng)中設(shè)置的port值。

2、進(jìn)行編譯打包

編譯打包后會發(fā)現(xiàn),a.properties沒有變化,而application.properties卻變成了maven當(dāng)中設(shè)置的值。

3、得出結(jié)論

我這里用的是springboot2.6.2,不管是哪個版本都可以點進(jìn)去,我們點進(jìn)去觀察。

從這里可以看出,springboot依賴當(dāng)中,其實已經(jīng)將application.properties給配置了。

也就是a.properties沒有進(jìn)行配置,所以取不到值,而application.properties配置了,所以取到值了。

4、添加resources進(jìn)行解決

目前問題是假如我想讓a.properties也一樣可以取到值。

通過添加以下配置即可:

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

注意:

這里的filtering一定要設(shè)置為true,假如為false,我們配置文件當(dāng)中用到了@@取pom的值,會取不到。

實際上,他是在編譯過后就把application當(dāng)中的值給替換了,替換成了pom當(dāng)中配置的值,而并非是程序當(dāng)中獲取的時候,他才動態(tài)去獲取pom當(dāng)中的值。

5、疑問

可能有的人會感覺好奇,為什么不這么配置,其實我也試了,只不過這么加的話,resources當(dāng)中的文件就丟了,只剩下a.properties了。

<resources>
  <resource>
	<directory>src/main/resources</directory>
	<filtering>true</filtering>
	<includes>
	  <include>a.properties</include>
	</includes>
  </resource>
</resources>

總結(jié):一旦pom當(dāng)中添加resources,指定某一個文件,就會導(dǎo)致resources其他文件打包的時候丟失,這兩個例子其實都 體現(xiàn) 出來了。

到此這篇關(guān)于Maven中resources標(biāo)簽的用法詳解的文章就介紹到這了,更多相關(guān)Maven resources內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 詳解JAVA 連等賦值問題

    詳解JAVA 連等賦值問題

    這篇文章主要介紹了JAVA 連等賦值問題,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-03-03
  • Java BigDecimal案例詳解

    Java BigDecimal案例詳解

    這篇文章主要介紹了Java BigDecimal案例詳解,本篇文章通過簡要的案例,講解了該項技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下
    2021-08-08
  • java中日期格式化的大坑

    java中日期格式化的大坑

    這篇文章主要介紹了java中日期格式化的大坑,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-01-01
  • Java Long類型對比分析

    Java Long類型對比分析

    這篇文章主要介紹了Java Long類型對比分析,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-07-07
  • SpringBoot注解篇之@Resource與@Autowired的使用區(qū)別

    SpringBoot注解篇之@Resource與@Autowired的使用區(qū)別

    @Resource 注解和 @Autowired 注解都是在 Spring Framework 中進(jìn)行依賴注入的注解,那么你知道他們有什么區(qū)別嗎,本文就來介紹一下
    2023-12-12
  • Spring 4.0新功能:@Conditional注解詳細(xì)介紹

    Spring 4.0新功能:@Conditional注解詳細(xì)介紹

    Spring Boot的強大之處在于使用了Spring 4框架的新特性:@Conditional注釋,此注釋使得只有在特定條件滿足時才啟用一些配置。下面這篇文章主要給大家介紹了關(guān)于Spring4.0中新功能:@Conditional注解的相關(guān)資料,需要的朋友可以參考下。
    2017-09-09
  • Java8新特性之泛型的目標(biāo)類型推斷_動力節(jié)點Java學(xué)院整理

    Java8新特性之泛型的目標(biāo)類型推斷_動力節(jié)點Java學(xué)院整理

    泛型是Java SE 1.5的新特性,泛型的本質(zhì)是參數(shù)化類型,也就是說所操作的數(shù)據(jù)類型被指定為一個參數(shù)。下面通過本文給分享Java8新特性之泛型的目標(biāo)類型推斷,感興趣的朋友參考下吧
    2017-06-06
  • SpringBoot獲取當(dāng)前運行環(huán)境三種方式小結(jié)

    SpringBoot獲取當(dāng)前運行環(huán)境三種方式小結(jié)

    在使用SpringBoot過程中,我們只需要引入相關(guān)依賴,然后在main方法中調(diào)用SpringBootApplication.run(應(yīng)用程序啟動類.class)方法即可,那么SpringBoot是如何獲取當(dāng)前運行環(huán)境呢,接下來由小編給大家介紹一下SpringBoot獲取當(dāng)前運行環(huán)境三種方式,需要的朋友可以參考下
    2024-01-01
  • java字符串遍歷的幾種常用方法總結(jié)

    java字符串遍歷的幾種常用方法總結(jié)

    Java字符串是一系列的Unicode字符序列,但是它卻常常被誤認(rèn)為是char序列,這篇文章主要給大家介紹了關(guān)于java字符串遍歷的幾種常用方法,文中通過實例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2023-04-04
  • Java多線程中的Future類詳細(xì)解讀

    Java多線程中的Future類詳細(xì)解讀

    這篇文章主要介紹了Java多線程中的Future類詳細(xì)解讀,Future表示一個可能還沒有完成的異步任務(wù)的結(jié)果,針對這個結(jié)果可以添加Callback以便在任務(wù)執(zhí)行成功或失敗后作出相應(yīng)的操作,需要的朋友可以參考下
    2023-11-11

最新評論