2016-04-08 5 views
54

В проекте maven я пытаюсь заменить некоторые маркеры, используя фильтрацию ресурсов maven, но это не сработает. У меня есть несколько других проектов, которые работают, но не работают в этом одном проекте, не уверены, что не так.Неправильная фильтрация ресурсов Maven - из-за зависимости загрузки весны

Свойство файлов в /src/main/resources/my.properties местоположение

Я попробовал разные Maven команды, как показано ниже, но не работает.

mvn clean install 
mvn clean install resources:resources 

my.properties

### Spring boot properties 
jdbc.url=${jdbc.url} 
ldap.domain=${ldap_domain} 
ldap.url=${ldap_url} 

pom.xml

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 
    <modelVersion>4.0.0</modelVersion> 
    <groupId>com.jai</groupId> 
    <artifactId>client</artifactId> 
    <version>0.0.6-SNAPSHOT</version> 
    <name>client</name> 
    <description>client web application</description> 
    <packaging>war</packaging> 

    <parent> 
     <groupId>org.springframework.boot</groupId> 
     <artifactId>spring-boot-starter-parent</artifactId> 
     <version>1.3.2.RELEASE</version> 
     <relativePath /> 
    </parent> 


    <dependencies> 

     <dependency> 
      <groupId>org.springframework.boot</groupId> 
      <artifactId>spring-boot-starter-security</artifactId> 
     </dependency> 
     <dependency> 
      <groupId>org.springframework.boot</groupId> 
      <artifactId>spring-boot-starter-web</artifactId> 
     </dependency> 
     <dependency> 
      <groupId>org.springframework.boot</groupId> 
      <artifactId>spring-boot-starter-tomcat</artifactId> 
      <scope>provided</scope> 
     </dependency> 

     <dependency> 
      <groupId>org.springframework.boot</groupId> 
      <artifactId>spring-boot-starter-test</artifactId> 
      <scope>test</scope> 
     </dependency> 

     <dependency> 
      <groupId>org.springframework.security</groupId> 
      <artifactId>spring-security-ldap</artifactId> 
     </dependency> 

    </dependencies> 

    <build> 
     <finalName>client</finalName> 

     <resources> 
      <resource> 
       <directory>src/main/resources</directory> 
       <filtering>true</filtering> 
      </resource> 
     </resources> 

     <plugins> 
      <plugin> 
       <groupId>org.springframework.boot</groupId> 
       <artifactId>spring-boot-maven-plugin</artifactId> 
      </plugin> 

      <plugin> 
       <artifactId>maven-war-plugin</artifactId> 
       <configuration> 
        <warSourceDirectory>WebContent</warSourceDirectory> 
        <failOnMissingWebXml>false</failOnMissingWebXml> 
       </configuration> 
      </plugin> 

      <plugin> 
       <groupId>org.codehaus.mojo</groupId> 
       <artifactId>exec-maven-plugin</artifactId> 
       <executions> 
        <execution> 
         <id>exec-bower-install</id> 
         <phase>generate-sources</phase> 
         <configuration> 
          <executable>bower</executable> 
          <arguments> 
           <argument>install</argument> 
          </arguments> 
         </configuration> 
         <goals> 
          <goal>exec</goal> 
         </goals> 
        </execution> 
       </executions> 
      </plugin> 

     </plugins> 

    </build> 


    <profiles> 
     <!-- localhost environment --> 
     <profile> 
      <id>local</id> 

      <activation> 
       <activeByDefault>true</activeByDefault> 
      </activation> 

      <properties> 

       <ldap_domain>mydomain.local</ldap_domain> 
       <ldap_url>ldap://server:389</ldap_url> 
       <jdbc.url>testttttttttttttttttttttt</jdbc.url> 

      </properties> 
     </profile> 

     </profiles> 

</project> 

Обновление: -

Я понял это проблема возникает из-за весенней загрузки. Если я прокомментирую раздел <parent> и другие зависимости загрузки весны, то он отлично работает и может заменить токен. Но все же не уверен, как это исправить, сохранив весенний ботинок.

+2

Кажется, это дефект в весенней загрузке по протоколу HTTPS: //github.com/spring-projects/spring-boot/issues/980 – Jay

+0

все еще проблема с весенней загрузкой 1.5.9.RELEASE – jediz

ответ

113

Наконец-то нашел ответ из ссылки в моих комментариях. Поскольку это весна загрузка приложений ... особый случай ... обозначения должны быть

@[email protected] instead of ${xxxxx} 

Так что мой файл свойства будут ниже

### Spring boot properties 
[email protected]@ 
[email protected][email protected] 
[email protected][email protected] 
+4

У вас есть дополнительная информация об этом в https://docs.spring.io/spring-boot /docs/current/reference/html/howto-properties-and-configuration.html – pedrocgsousa

+0

Просто чтобы люди не охотились, это было изменено в SB 1.3.0. Вот https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-1.3-Release-Notes#maven-resources-filtering – mdo123

+0

Это сделало мой день ;-) Большое спасибо! – pixelstuermer

Смежные вопросы