maven profile动态选择配置文件

resources/config/appclication-dev.properties   配置如下:
profile.env=dev
env.datasource.driver=com.mysql.cj.jdbc.Driver
env.datasource.jdbcUrl=jdbc:mysql://192.168.42.29:3306/dev?useUnicode=true&characterEncoding=utf-8&useSSL=false
env.datasource.username=ctl
env.datasource.password=liebe

resources/config/appclication-proc.properties   配置如下:
profile.env=proc
env.datasource.driver=com.mysql.cj.jdbc.Driver
env.datasource.jdbcUrl=jdbc:mysql://192.168.42.29:3306/proc?useUnicode=true&characterEncoding=utf-8&useSSL=false
env.datasource.username=ctl
env.datasource.password=liebe

resources/config/appclication-test.properties   配置如下:
profile.env=test
env.datasource.driver=com.mysql.cj.jdbc.Driver
env.datasource.jdbcUrl=jdbc:mysql://192.168.42.29:3306/test?useUnicode=true&characterEncoding=utf-8&useSSL=false
env.datasource.username=ctl
env.datasource.password=liebe

resources/config.properties   配置如下:
env=${profile.env}
jdbc.driver=${env.datasource.driver}
jdbc.url=${env.datasource.jdbcUrl}
jdbc.username=${env.datasource.username}
jdbc.password=${env.datasource.password}

执行mvn compile -P proc 后target编译后的额config.properties变更为:
env=proc
jdbc.driver=com.mysql.cj.jdbc.Driver
jdbc.url=jdbc:mysql://192.168.42.29:3306/proc?useUnicode=true&characterEncoding=utf-8&useSSL=false
jdbc.username=ctl
jdbc.password=liebe

执行mvn compile -P test 后target编译后的额config.properties变更为:
env=test
jdbc.driver=com.mysql.cj.jdbc.Driver
jdbc.url=jdbc:mysql://192.168.42.29:3306/test?useUnicode=true&characterEncoding=utf-8&useSSL=false
jdbc.username=ctl
jdbc.password=liebe

执行mvn compile -P dev 后target编译后的额config.properties变更为:
env=dev
jdbc.driver=com.mysql.cj.jdbc.Driver
jdbc.url=jdbc:mysql://192.168.42.29:3306/dev?useUnicode=true&characterEncoding=utf-8&useSSL=false
jdbc.username=ctl
jdbc.password=liebe

<profiles>
    <profile>
      <!-- 本地开发环境 -->
      <id>dev</id> <!-- mvn compile -P dev & mvn package -P dev -->
      <properties> <!-- profiles.activez的值与id值保持一致 -->
        <profiles.active>dev</profiles.active>  <!--src/main/resources/config/application-${profiles.active}.properties   用此处配置的dev替换,变成application-dev.properteis -->
      </properties>
      <!-- 设置默认激活这个配置 -->
      <activation>
        <activeByDefault>true</activeByDefault>
      </activation>
    </profile>
    <profile>
      <!-- 发布环境 -->
      <id>proc</id> <!-- mvn compile -P proc & mvn package -P proc -->
      <properties> <!-- profiles.activez的值与id值保持一致 -->
        <profiles.active>proc</profiles.active>  <!--src/main/resources/config/application-${profiles.active}.properties   用此处配置的proc替换,变成application-proc.properteis   -->
      </properties>
    </profile>
    <profile>
      <!-- 测试环境 -->
      <id>test</id> <!-- mvn compile -P test & mvn package -P test -->
      <properties> <!-- profiles.activez的值与id值保持一致 -->
        <profiles.active>test</profiles.active>   <!--src/main/resources/config/application-${profiles.active}.properties   用此处配置的test替换,变成application-test.properteis   -->
      </properties>
    </profile>
  </profiles>
  <build>
    <filters>
      <filter>src/main/resources/config/application-${profiles.active}.properties</filter><!-- maven profile动态选择配置文件 -->
    </filters>
    <finalName>pmanager</finalName>
    <resources>
      <resource><!-- add mybatis mapper to classpath -->
        <directory>src/main/java</directory>
        <includes>
          <include>**/mapper/*Mapper.xml</include>
          <include>**/mappers/*Mapper.xml</include>
        </includes>
      </resource>
      <resource>
        <directory>${basedir}/src/main/resources</directory>
        <filtering>true</filtering><!-- maven profile动态选择配置文件 -->
      </resource>
    </resources>
  </build>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Maven 中,可以使用 `maven-resources-plugin` 插件来实现根据不同的环境选择不同的配置文件。 首先,在 Maven 的 `pom.xml` 文件中,添加 `maven-resources-plugin` 插件的配置,示例如下: ```xml <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-resources-plugin</artifactId> <version>3.2.0</version> <configuration> <outputDirectory>${project.build.directory}/classes</outputDirectory> <resources> <resource> <directory>src/main/resources</directory> <filtering>true</filtering> </resource> </resources> </configuration> </plugin> </plugins> </build> ``` 这段配置告诉 Maven,在编译时将 `src/main/resources` 目录下的配置文件复制到 `target/classes` 目录下,并将其中的 `${}` 占位符替换为实际的值。 接下来,在项目中创建不同环境的配置文件,如 `config-dev.properties`、`config-prod.properties` 等。在这些文件中,可以定义不同的配置项,如数据库连接信息、日志级别等。 最后,在运行时通过 Maven 的 `profiles` 功能来指定使用哪个配置文件。在 `pom.xml` 文件中添加如下配置: ```xml <profiles> <profile> <id>dev</id> <properties> <env>dev</env> </properties> <activation> <activeByDefault>true</activeByDefault> </activation> </profile> <profile> <id>prod</id> <properties> <env>prod</env> </properties> </profile> </profiles> ``` 这段配置定义了两个 `profile`,一个是 `dev`,一个是 `prod`。其中 `dev` 配置是默认的,`prod` 配置需要手动激活。 在代码中,可以使用 `System.getProperty("env")` 来获取当前运行环境,然后动态加载对应的配置文件。例如,在 Java 中使用 `java.util.Properties` 加载配置文件的示例代码: ```java Properties props = new Properties(); String env = System.getProperty("env"); try (InputStream is = getClass().getResourceAsStream("/config-" + env + ".properties")) { props.load(is); } ``` 这段代码根据当前的环境变量 `env`,动态加载对应的配置文件
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值