发布时间:2026-01-02
浏览次数:0
小伙伴们清楚,我们于创建Boot项目之际,默认情况下都会存在一个,此中为我们确定了项目的JDK版本、编码格式、依赖版本、插件版本等各类常见内容,部分小伙伴或许看过的源码,该源码里面有着这样一项配置:
${basedir}/src/main/resources
true
**/application*.yml
**/application*.yaml
**/application*.properties
${basedir}/src/main/resources
**/application*.yml
**/application*.yaml
**/application*.properties
首先,小伙伴们是知道的,这个配置文件的目的,主要在于描述在进行 maven 打包时,是否要带上这几个配置文件,然而,乍一看,又会感觉上面这段配置好像存在某种矛盾,待松哥来和大家梳理一番后,就不会觉得存在矛盾了:
首先来看第一个方面,此方面所涉及的乃是项目的目录,在这个目录当中存在着我们三种格式的配置文件,除此之外,还有一个属性的值被设定为 true,那么这究竟是什么意思呢?实际上这所表达的是,我们于 maven 的 pom.xml 文件里所定义的一些变量,能够在其所列出的配置文件当中进行引用,换而言之,就是所列出的文件,能够参与到项目的编译过程之中。第二个哟 ,不存在呢 ,而且把这三个文件给排除了 ,其意思是 ,在项目进行打包的进程当中 ,除开这三类文件以外 ,其余的文件会直接被拷贝到项目里 ,不会去参与项目编译 。
需要总结的是,所下的全部文件,都会被整合入项目里,然而,被列出来的那三种类型,不但会被收纳进来,而且还会参与到编译过程当中。
这下就清晰了,上面这段配置实际上并不矛盾。
如此一来,于 或者 yaml 里面,要怎样去引用 maven 之中的变量呀?
这块原本写法是运用$符号去引用,然而,我们于配置文件里面,常常借助$符号来引用当前配置文件的另外一个key,所以,我们在Boot之中,还会瞧见下面这行配置:
17
@
${java.version}
${java.version}
UTF-8
UTF-8
这里的@,意味着把用于资源引用的符号,改成@符号,即在yaml或者文件里,要是咱们想要去引用pom.xml之中所定义的变量,那么就能够借助@符号来进行引用。
松哥列举一个简易的事例,假定我要于项目的yaml文档里设置当前项目的Java版本,那么我能够依照如下这般去撰写:
app:
java:
version: @java.version@
那么,在这里,这个 @java.@ 所代表的含义便是,它引用了,在 pom.xml 里定义的,那个 java. 变量 。
此刻,我们针对项目开展编译工作,在完成编译操作之后,再去打开那个.yaml,其呈现的内容是这样的:
可以看到,引用的变量已经被替换了。
依据Boot里默认的设定,*.yaml、*.yml以及*.文件之中能够去引用在pom.xml里所定义的变量,然而其他文件却不具备这样的能力。要是其他文件也企图引用,那就需要另外进行一番配置才行啦。
比如,要是想要让txt文件去引用pom.xml里的变量,那么我们能够在pom.xml当中进行像下面这样的配置:
src/main/resources
**/*.txt
true
org.springframework.boot
spring-boot-maven-plugin
所有txt文件,将其设置为true(若为不设置则默认为false),之后我们能够在目录下的txt文件里引用pom.xml中的变量,如下所示:
编译之后,这个变量引用就会被替换成真正的值:
在yaml里引用pom.xml的配置,存在一种极其经典的用法,那便是多环境切换intellij idea golang plugin,。
假定当下我们于项目里存在着开发环境,还有测试环境,再有生产环境,与之相对应的配置文件具体是。
我们能够于.yaml里明确具体采用哪一个配置文件,呈现为如下这般:
spring:
profiles:
active: dev
这个表示使用开发环境的配置文件。
但有时,我们的环境信息是于pom.xml里配置的,像pom.xml中含有如下这般的内容:。
dev
dev
true
prod
prod
test
test
在这儿配置了三个环境来着,其中默认的那个是dev()。这样一来,我们若在.yaml格式文件里,就能够利用.去引用当下环境的名称,而不是采用硬编码哟。像下面这样呈现:
spring:
profiles:
active: @package.environment@
当下,当我们借由maven指令针对项目进行打包操作之际,便能去指定当前所处环境的版本喽,比如说若是采用test环境作为示例,其打包命令是这样子的:
mvn package -Ptest
完成打包之后,我们去查看.yaml ,就能够发现其中的环境已经是 test 了。
要是你所采用的是IDEA这一工具,那么还有一种方式,即能够凭借手动去勾选相应的环境,接着再去点击那个打包按钮,如同下面所呈现的这般:
可以先勾选上面的环境信息intellij idea golang plugin,再点击下面的打包。
好啦,有个小小的知识点,由于有小伙伴在微信上问了这个问题,所以就把它拿出来,和大家分享一下。
如有侵权请联系删除!
Copyright © 2023 江苏优软数字科技有限公司 All Rights Reserved.正版sublime text、Codejock、IntelliJ IDEA、sketch、Mestrenova、DNAstar服务提供商
13262879759
微信二维码