title: Spring Boot property expansion not working after switching from Eclipse to IntelliJ
body: <p>Our app has for properties that we pick up dynamically from the Maven project files.  </p>
  
  <pre><code>info:
    build:
      artifact: @project.artifactId@
      name: @project.name@
      description: @project.description@
      version: @project.version@
  </code></pre>
  
  <p><a href="http://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/#production-ready-application-info-automatic-expansion-maven" rel="noreferrer">http://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/#production-ready-application-info-automatic-expansion-maven</a></p>
  
  <p>When we were using Eclipse these were not a problem, but now on moving to InelliJ the app won't startup unless I provide some hardcoded values for those dynamic properties.</p>
  
  <p>I get this error:</p>
  
  <pre><code>19:47:20.962 [main] INFO  com.edlogics.ElrcApplication - Spring Boot configuration: profiles = [local, chris]
  19:47:20.968 [main] INFO  com.edlogics.ElrcApplication - Spring Boot configuration: properties = {}
  Exception in thread "main" while scanning for the next token
  found character '@' that cannot start any token. (Do not use @ for indentation)
   in 'reader', line 74, column 11:
          name: @project.name@
                ^
  
   org.yaml.snakeyaml.scanner.ScannerImpl.fetchMoreTokens(ScannerImpl.java:420)
   org.yaml.snakeyaml.scanner.ScannerImpl.checkToken(ScannerImpl.java:226)
   org.yaml.snakeyaml.parser.ParserImpl$ParseBlockMappingValue.produce(ParserImpl.java:586)
   org.yaml.snakeyaml.parser.ParserImpl.peekEvent(ParserImpl.java:158)
   org.yaml.snakeyaml.parser.ParserImpl.checkEvent(ParserImpl.java:143)
   org.yaml.snakeyaml.composer.Composer.composeNode(Composer.java:132)
   org.yaml.snakeyaml.composer.Composer.composeMappingNode(Composer.java:229)
   org.yaml.snakeyaml.composer.Composer.composeNode(Composer.java:155)
   org.yaml.snakeyaml.composer.Composer.composeMappingNode(Composer.java:229)
   org.yaml.snakeyaml.composer.Composer.composeNode(Composer.java:155)
   org.yaml.snakeyaml.composer.Composer.composeMappingNode(Composer.java:229)
   org.yaml.snakeyaml.composer.Composer.composeNode(Composer.java:155)
   org.yaml.snakeyaml.composer.Composer.composeDocument(Composer.java:122)
  ...
  
  Process finished with exit code 1
  </code></pre>
  
  <p>I realize that <code>@</code> is not a valid YAML character, just not sure how this was working in Eclipse and not in IntelliJ</p>
  
  <p><strong>Edit:</strong></p>
  
  <p>One thing that I left out of the original questions is that we have a multi-module project.  It's the project's root pom that inherits from spring-boot-starter-parent that has this:</p>
  
  <pre><code>        &lt;resources&gt;
          &lt;resource&gt;
              &lt;directory&gt;${basedir}/src/main/resources&lt;/directory&gt;
              &lt;filtering&gt;true&lt;/filtering&gt;
              &lt;includes&gt;
                  &lt;include&gt;**/application.yml&lt;/include&gt;
                  &lt;include&gt;**/application.properties&lt;/include&gt;
              &lt;/includes&gt;
          &lt;/resource&gt;
          &lt;resource&gt;
              &lt;directory&gt;${basedir}/src/main/resources&lt;/directory&gt;
              &lt;excludes&gt;
                  &lt;exclude&gt;**/application.yml&lt;/exclude&gt;
                  &lt;exclude&gt;**/application.properties&lt;/exclude&gt;
              &lt;/excludes&gt;
          &lt;/resource&gt;
      &lt;/resources&gt;
  </code></pre>
  
  <p>And in our project it is a submodule that is in need of the filtering.  The application.yml file is in the correct location of the submodule and Eclipse did not seem to mind that it was a submodule.  I know that Eclipse and IntelliJ treat multi-module projects a little differently (Eclipse has flat structure while IntelliJ is hierarchical). </p>