在pom.xml中進行profile配置


一直只會使用,但不知道怎么配置的。所以自己配配看。

本小白啟初的想法是-------在 application.properties里指定需要加載的配置文件和自定義屬性,就可以啦。

於是做了如下操作:

先建立兩個配置文件,分別命名為 application-dev.properties 和 application-prod.properties。

並且在配置文件中,分別自定義屬性

profile.name = dev
profile.name = prod

在application.properties中不明所以、依葫蘆畫瓢、異想天開的直接寫上了自以為的指定需要加載的配置文件和屬性(純小白,純純的小白。哎。鄙視自己)。

spring.profiles.active=${spring.profiles.active}
profile.name = ${profile.name}

然后再依葫蘆畫瓢的在pom.xml里配置

<profiles>
        <profile>
            <id>dev</id>
            <activation>
                <activeByDefault>true</activeByDefault>
            </activation>
            <properties>
                <env>dev</env>
            </properties>
        </profile>
        <profile>
            <id>prod</id>
            <properties>
                <env>prod</env>
            </properties>
        </profile>
</profiles>

到了這里,突然覺得有哪里不對。-----------項目怎么知道去哪里找文件的替換源???起碼有個文件名格式對不對??

還需要指定替換源呀!

於是,百度一下,需要在build里面指定filiter

<filters>
      <filter>src/main/resources/application-${env}.properties</filter>
</filters>

然后啟動項目,還是不行。最后查下來,因為------------默認占位符是@...@! 呵呵。再一次嘲笑依葫蘆畫瓢的自己!如果寫@..@確實也沒毛病,但是我看大佬們的項目好像都寫的${...},雖然不知道為什么,但是大佬們一定有大佬們這么寫的原因,那我還是暫且學習大佬們吧。(小白的自我修養)

所以還需要再build里面配置

<resources>
<resource>
<filtering>true</filtering>
<!-- 這個表示對src/main/resources中的配置文件中的占位符進行動態替換 -->
<directory>src/main/resources</directory>
</resource>
</resources>

 build-plugin下配置

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-resources-plugin</artifactId>
    <configuration>
       <delimiters>
           <delimiter>${*}</delimiter>
           <!-- 使用${..}作為占位符 -->
       </delimiters>
       <useDefaultDelimiters>true</useDefaultDelimiters>
       <!-- 使用默認的占位符(@..@) -->
     </configuration>
</plugin>

 (其中還有個小插曲,從網上copy下來,咋還報錯嗯?因為copy的里面看似正常。。但其實有特殊字符了。。。。把前面虛偽的空格刪掉!就可以了!) 

最終,項目啟動成功,讀取自定義變量成功~~~~。

-----------------------------------------------------------------------------------------------------------------------------------------------------

回過頭來,敲黑板總結一下,其實配置順序應該是:

  • 前期准備:

1.配置pom.xml,允許用${...}作為占位符;

2.配置對哪些目錄下,配置文件的占位符進行動態替換

  • profile配置:

1.定義profile文件(創建文件,pom.xml定義)

2.定義filter(當filter被激活時,Maven會掃描資源,找到有占位符${...}的Maven屬性的引用,然后用對應的值替換。)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM