Maven 动态切换多 profiles 编译环境

pom.xml 配置

<!-- Maven动态切换多profiles编译环境 -->
<profiles>
    <!-- 开发环境 -->
    <profile>
        <id>dev</id>
        <!-- 默认激活 -->
        <activation>
            <activeByDefault>true</activeByDefault>
        </activation>
        <properties>
            <!-- 设置变量, 标签名称自定义, ***.properties 中可根据 @activeProfile@ 来取值 -->
            <activeProfile>dev</activeProfile>
        </properties>
    </profile>

    <!-- 测试环境 -->
    <profile>
        <id>test</id>
        <properties>
            <activeProfile>test</activeProfile>
        </properties>
    </profile>

    <!-- 生产环境 -->
    <profile>
        <id>prod</id>
        <properties>
            <activeProfile>prod</activeProfile>
        </properties>
    </profile>
</profiles>

 

application.properties 配置

spring.profiles.active=@activeProfile@
# 列出当前所有的 profile
mvn help:all-profiles

# 查看当前激活的 profile
mvn help:active-profiles

# 打包 dev 环境的
mvn clean package -Dmaven.test.skip=true -P dev

 

pom 属性

  • ${project.build.sourceDirectory}: 项目的主源码目录,默认为src/main/java
  • ${project.build.testSourceDirectory}: 项目的测试源码目录,默认为src/test/java
  • ${project.build.directory}: 项目构件输出目录,默认为target/
  • ${project.outputDirectory}: 项目主代码编译输出目录,默认为target/classes/
  • ${project.testOutputDirectory}: 项目测试代码编译输出目录,默认为target/test-classes/
  • ${project.groupId}: 项目的groupId
  • ${project.artifactId}: 项目的artifactId
  • ${project.version}: 项目的version,与${version}等价
  • ${project.build.fianlName}: 项目打包输出文件的名称。默认为${project.artifactId}-${project.version}

 

资源管理标签

<build>
	<!-- 项目打包输出文件的名称, 默认: ${project.artifactId}-${project.version} -->
    <finalName>${project.artifactId}</finalName>
    
    <!-- 资源管理 -->
    <resources>
        <resource>
            <!-- 指定 resources 插件处理哪个目录下的资源文件  -->
            <directory>src/main/resources</directory>
            <!-- 打包后放在什么位置  -->
            <targetPath>${project.build.directory}/classes</targetPath>
            <!-- 是否为此资源启用筛选 -->
            <filtering>true</filtering>
            <!-- 包含的文件 -->
            <includes>
                <include>application.properties</include>
                <include>application-${activeProfile}.properties</include>
                <include>**.xml</include>
                <include>mybatis/**/**.xml</include>
            </includes>
            <!-- 排除的文件 -->
            <excludes>
                <exclude>**.log</exclude>
            </excludes>
        </resource>
        <resource>
            <directory>src/main/resources/env</directory>
            <targetPath>${project.build.directory}/classes/env</targetPath>
            <includes>
                <include>${activeProfile}/application.properties</include>
            </includes>
        </resource>
    </resources>
</build>

 

Reference

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Jaemon

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值