Eureka注册服务配置info-使用$project.artifactId$无法动态显示artifactId

记一次纠错过程

一开始,我是把如下加在父工程的pom.xml中

<build>
   <resources>
          <resource>
                <directory>src/main/resourcesdirectory>
                <filtering>truefiltering>
            resource>
   resources>
   <pluginManagement>
       <plugins>
           <plugin>
                    <groupId>org.apache.maven.pluginsgroupId>
                    <artifactId>maven-resources-pluginartifactId>
                    <configuration>
                          <delimiters>
                              <delimit>$delimit>
                          delimiters>
                    configuration>
            plugin>
       plugins>
    pluginManagement> 
build>  

然后在服务模块的application.yml中配置info信息:

info:
  app.name: xns-servicecloud
  company.name: www.xns.com
  build.artifactId:  $project.artifactId$
  build.version: $project.version$

跟着教程走的,人家确实出来了,我的确是这样:
Eureka注册服务配置info-使用$project.artifactId$无法动态显示artifactId_第1张图片

然后开始百度,各种方法都试了,都不行,直到看到这一篇spring cloud yml配置 p r o j e c t . v e r s i o n project.version project.version获取不到值问题处理,他说: “application.yml,${parameter}则是读取文件内部的变量值
若想读取pom.xml文件的变量应该使用@parameter@”
,于是我就按他的方法改成了

info:
  app.name: xns-servicecloud
  company.name: www.xns.com
  build.artifactId:  "@project.artifactId@"
  build.version: "@project.version@"

注意:"@project.version@",一定要加双引号,不然会报错,加单引号,也行。
把pom.xml中的’$‘符号改成’@'符号
但是还是不能动态取值,然后经过几次尝试,最终解决办法为:
yml配置不变,为:

info:
app.name: xns-servicecloud
company.name: www.xns.com
build.artifactId:  "@project.artifactId@"
build.version: "@project.version@"

但是要把如下加在配置info的子模块的pom.xml中,这样,再运行就获取到了

 <resources>
        <resource>
              <directory>src/main/resourcesdirectory>
              <filtering>truefiltering>
          resource>
 resources>

如果用 @project.version@的话,不用在pom.xml中加

                 <configuration>
                          <delimiters>
                              <delimit>@delimit>
                          delimiters>
                    configuration>

因为默认的为@
Eureka注册服务配置info-使用$project.artifactId$无法动态显示artifactId_第2张图片

使用$$动态取

改好之后,在百度上看到有人说要把delimit改成delimiter,尝试之后,发现只要改成这样,就可以使用"$project.artifactId $"来获取呢,设置如下:

              <plugin>
                    <groupId>org.apache.maven.pluginsgroupId>
                    <artifactId>maven-resources-pluginartifactId>
                    <configuration>
                        <delimiters>
                            <delimiter>$delimiter>
                        delimiters>
                    configuration>
                plugin>

但是注意下面这个要放在配置info的子模块的pom.xml中,然后之间写什么符号,就在yml中用什么符号

 <resource>
                <directory>src/main/resourcesdirectory>
                <filtering>truefiltering>
            resource>

yml配置info如下:

info:
  app.name: xns-servicecloud
  company.name: www.xns.com
  build.artifactId: $project.artifactId$
  build.version: $project.version$

每个版本可能不同,如有错误,请指正

你可能感兴趣的:(Spring,Cloud)