java⽆法直接引⽤pom中定义的变量
maven占位符类似于EL表达式,通过${}来获取pom中定义的变量,这样可以根据不同的部署环境,将对应的xml⽂件中的变量进⾏替换(⼀般情况下,测试和开发环境引⽤的变量都是不⼀样的,如果⼿动替换,这样⼯作量会很⼤)。根据l中不同部署环境配置的变量,可以动态的将xml⽂件中引⽤变量替换,也可以将Index页⾯中引⽤的静态⽂件路径动态变换();但是maven中定义的变量,⽆法直接在代码中获取,需要定义在properties⽂件中,然后将对应环境properties在pom中引⼊即可。
下⾯就java中环境变量获取演⽰,代码如下:
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>
&v>local</v><!--变量,标识环境-->
&level>INFO</level>
<log.logger.level>DEBUG</log.logger.level>
&sole.level>INFO</sole.level>
</properties>
java配置用户变量</profile>
<profile>
<id>development</id><!--local环境-->
<build>
<resources>
<resource>
<directory>src/main/profiles/development</directory><!--引⼊properties⽂件地址--> </resource>
</resources>
</build>
<properties>
&v>development</v><!--变量,标识环境-->
&level>INFO</level>
<log.logger.level>DEBUG</log.logger.level>
&sole.level>INFO</sole.level>
</properties>
</profile>
<profile>
<id>preview</id><!--local环境-->
<build>
<resources>
<resource>
<directory>src/main/profiles/preview</directory><!--引⼊properties⽂件地址-->
</resource>
</resources>
</build>
<properties>
&v>preview</v><!--变量,标识环境-->
&level>INFO</level>
<log.logger.level>DEBUG</log.logger.level>
&sole.level>INFO</sole.level>
</properties>
</profile>
<profile>
<id>product</id><!--⽣产部署环境-->
<build>
<resources>
<resource>
<directory>src/main/profiles/production</directory><!--引⼊properties⽂件地址--> </resource>
</resources>
</build>
<properties>
&v>product</v><!--product-->
&level>INFO</level>
<log.logger.level>DEBUG</log.logger.level>
&sole.level>INFO</sole.level>
<!--相关占位符变量配置,例如:xml中配置为${node.path},则pom进⾏如下配置-->
<node.path>main.js</node.path>
</properties>
</profile>
</profiles>
3.在java代码中使⽤变量接收参数:
@Value("${v}")//SpringEl表达式
private String env;
4.这样就可以获取到对应编译环境的环境变量。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论