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

猜你喜欢

转载自www.cnblogs.com/lovedaodao/p/8951762.html
今日推荐