maven properties 动态转换

Posted 亲爱的阿道君

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了maven properties 动态转换相关的知识,希望对你有一定的参考价值。

可以将不同profile的属性直接配置在顶级pom.xml中,这样的优点是各个module可以共用配置的属性。

第一步,新建Spring Boot项目,修改pom.xml,添加<profiles/>配置如下:

<profiles>
    <profile>
        <id>dev</id>
        <properties>
            <username>zhangsan</username>
        </properties>
        <activation>
            <activeByDefault>true</activeByDefault>
        </activation>
    </profile>
    <profile>
        <id>prod</id>
        <properties>
            <username>lisi</username>
        </properties>
        <activation>
            <activeByDefault>true</activeByDefault>
        </activation>
    </profile>
</profiles>

 

这里定义了dev和prod两个profile,其中默认激活的是dev。每个profile中通过<properties/>设置了属性。

第二步,修改编译设置。这里的<filtering>true</filtering>指定了使用pom.xml中profile下的属性替换src/main/resources/下${xxx}方式的属性引用:

<build>
    <resources>
        <resource>
            <directory>src/main/resources</directory>
            <filtering>true</filtering>
        </resource>
        <resource>
            <directory>src/main/java</directory>
            <includes>
                <include>**/*.xml</include>
            </includes>
        </resource>
    </resources>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
        </plugin>
    </plugins>
</build>

第三步,在一个module中新建src/main/resources/application.properties,内容为:

username=${username}

 

第四步,在编译命令中使用-P参数指定profile如:mvn clean install -DskipTests –Pdev,来完成指定profile环境的编译。

查看module中的target/classes/application.properties文件,发现当-Pdev时,文件中username=zhangsan,当-Pprod时,文件中username=lisi

以上是关于maven properties 动态转换的主要内容,如果未能解决你的问题,请参考以下文章

推荐学java——MyBatis高级

推荐学java——MyBatis高级

推荐学java——MyBatis高级

推荐学java——MyBatis高级

Cg入门20:Fragment shader - 片段级模型动态变色(实现汽车动态换漆)

何时使用活动转换与动态片段的模式