我取得了类似的结果,但在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文件中使它们语法错误(因为字符$)