我取得了類似的結果,但在pom.xml
中使用了變量,而不是在propreties文件中。所以我的屬性文件有一些變量,這些變量在包裝中會被Maven改變。
首先我在POM的輪廓部分定義了這些瓦爾:
<profiles>
<profile>
<id>dev</id>
<activation><activeByDefault>true</activeByDefault></activation>
<properties>
<props.debug>true</props.debug>
<props.email>false</props.email>
<what.ever.you.want>value for dev profile</what.ever.you.want>
</properties>
</profile>
<profile>
<id>prod</id>
<properties>
<props.debug>false</props.debug>
<props.email>true</props.email>
<what.ever.you.want>value for prod profile</what.ever.you.want>
</properties>
</profile>
</profiles>
然後激活行家處理。第和資源的過濾。所以在你的編譯部分:
<build>
<resources>
<resource>
<directory>src/main/resources</directory>
<filtering>true</filtering>
</resource>
</resources>
</build>
最後我可以在我的屬性文件,配置文件中有「vars」。 例如,在我的項目中,我有一個email.properties
文件用於配置發送電子郵件。屬性「sendEmail」指示是否必須發送電子郵件(prod配置文件)或在調試(dev配置文件)中打印它。使用dev配置文件,這個變量將被置於false,而使用配置文件prod,屬性將具有真實值。
sendEmail=${props.email}
這不僅符合性文件工作,也與XML(我想每文本文件)
反政府是:配置的
- 一部分沿POM分散文件
- Maven包裝持續更多(因爲過濾)
- 將變量放在XML文件中使它們語法錯誤(因爲字符$)