java引用pom中定义的变量解决方案

上一篇文章,是通过properties定义变量,然后pom引入properties文件,这样就能在java代码中直接引入;也可以使用maven占位符来解决该问题,具体细节如下:

1.properties文件中环境变量定义

 

2.pom文件中对应部署环境引入对应properties文件

</build>
<profiles><!--部署环境-->
    <profile>
        <id>local</id><!--local环境-->
        <build>
            <resources>
                <resource>
                    <directory>src/main/profiles/local</directory><!--引入properties文件地址-->
                </resource>
            </resources>
        </build>
        <properties>
            <profile.env>local</profile.env><!--变量,标识环境-->
            <log.root.level>INFO</log.root.level>
            <log.logger.level>DEBUG</log.logger.level>
            <log.console.level>INFO</log.console.level> 
        </properties>
    </profile>

<profile>
        <id>development</id><!--local环境-->
        <build>
            <resources>
                <resource>
                    <directory>src/main/profiles/development</directory><!--引入properties文件地址-->
                </resource>
            </resources>
        </build>
        <properties>
            <profile.env>development</profile.env><!--变量,标识环境-->
            <log.root.level>INFO</log.root.level>
            <log.logger.level>DEBUG</log.logger.level>
            <log.console.level>INFO</log.console.level> 
        </properties>
    </profile>

<profile>
        <id>preview</id><!--local环境-->
        <build>
            <resources>
                <resource>
                    <directory>src/main/profiles/preview</directory><!--引入properties文件地址-->
                </resource>
            </resources>
        </build>
        <properties>
            <profile.env>preview</profile.env><!--变量,标识环境-->
            <log.root.level>INFO</log.root.level>
            <log.logger.level>DEBUG</log.logger.level>
            <log.console.level>INFO</log.console.level> 
        </properties>
    </profile>
    <profile>
        <id>product</id><!--生产部署环境-->
        <build>
            <resources>
                <resource>
                    <directory>src/main/profiles/production</directory><!--引入properties文件地址-->
                </resource>
            </resources>
        </build>
        <properties>
            <profile.env>product</profile.env><!--product-->
            <log.root.level>INFO</log.root.level>
            <log.logger.level>DEBUG</log.logger.level>
            <log.console.level>INFO</log.console.level>
           <!--相关占位符变量配置,例如:xml中配置为${node.path},则pom进行如下配置-->
           <node.path>main.js</node.path>
        </properties>
    </profile>
</profiles>

3.在java代码中使用变量接收参数:

@Value("${profile.env}")//SpringEl表达式 private String env; 4.这样就可以获取到对应编译环境的环境变量。