maven配置多个配置文件

首页scala » mavenmaven配置多个配置文件(2018年11月22日)

使用打包命令或是直接在maven的选择框profiles里选择使用哪个环境

开发环境打包命令
mvn clean install -P dev

测试环境打包命令
mvn clean install -P test

生产环境打包命令
mvn clean install -P formal

pom.xml配置
根节点:
<profiles>

<profile>
  <id>test</id>
  <activation>
    <activeByDefault>true</activeByDefault>
  </activation>
  <properties>
    <build.profile.id>test</build.profile.id>
  </properties>
</profile>
<profile>
  <id>develop</id>
  <properties>
    <build.profile.id>develop</build.profile.id>
  </properties>
</profile>
<profile>
  <id>prod</id>
  <properties>
    <build.profile.id>prod</build.profile.id>
  </properties>
</profile>

</profiles>

build节点:
<build>

  <filters>
      <filter>src/app-${build.profile.id}.properties</filter>
  </filters>
  <resources>
      <resource>
          <filtering>true</filtering>
          <!--加上filter会过滤该资源路径中的文件-->
          <directory>${project.basedir}/src/main/resources</directory>
      </resource>
  </resources>

</build>

配置文件Resources目录下:

System.properties 配置文件
app.mode=${app.mode}
app-develop.properties 开发配置文件
app.mode=develop
app-formal.properties 生产配置文件
app.mode=formal
app.test.properties 测试配置文件
app.mode=test

程序中获取:
import java.util.Properties
import java.io.FileInputStream

def loadProperties():Unit = {

val properties = new Properties()
val path = Thread.currentThread().getContextClassLoader.getResource("System.properties").getPath //文件要放到resource文件夹下
properties.load(new FileInputStream(path))
println(properties.getProperty("app.mode"))//读取键为ddd的数据的值
println(properties.getProperty("app.mode","没有值"))//如果ddd不存在,则返回第二个参数
properties.setProperty("app.mode","123")//添加或修改属性值

}

标签: none

评论已关闭