2017-01-31 17 views
0

я определил три профиля в моем pom.xmlкак придать свойства Maven профиля в application.properties с пружинным ботинке

<profiles> 
    <profile> 
     <id>development</id> 

     <properties> 
      <activatedProperties>development</activatedProperties> 
      <env.identifier>dev</env.identifier> 

     </properties> 

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

    <profile> 
     <id>qualification</id> 

     <properties> 
      <activatedProperties>qualification</activatedProperties> 
      <env.identifier>klif</env.identifier> 

     </properties> 
    </profile> 

    <profile> 
     <id>production</id> 

     <properties> 
      <activatedProperties>production</activatedProperties> 
      <env.identifier>prod</env.identifier> 

     </properties> 
    </profile> 
</profiles> 

Я также изменил мою сборку узел к этому:

<build> 
    <finalName>myApplication</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> 
      <configuration> 
       <executable>true</executable> 
      </configuration> 
     </plugin> 
    </plugins> 
</build> 

и я создал три файла свойств и в качестве имени этот шаблон: application- [profileId] .properties. В application.properties, который является общим, я определил свойство:

[email protected]@
, чтобы указать весеннюю загрузку, какой профиль использовать. Я также определил файл для моих файлов журналов, как следует:
logging.file=logs/[email protected]@.log
Проблема в том, что при запуске приложения даже при указании профиля я всегда получаю как значение для моего env.identifier dev. Как решить эту проблему? Благодаря

+0

Вы не должны делать это , Не используйте профили maven для создания нескольких артефактов. Это в основном означает, что вы собираетесь производить с непроверенным артефактом. Просто укажите эти параметры при запуске приложения для разных сред, вместо того, чтобы пытаться использовать для этого профили maven. –

ответ

0

Update

Вы, возможно, отсутствует плагин Maven ресурс:

<plugins> 


     <plugin> 
     <groupId>org.apache.maven.plugins</groupId> 
     <artifactId>maven-resources-plugin</artifactId> 
     <version>2.7</version> 
     <configuration> 
      <delimiters> 
      <delimiter>@</delimiter> 
      </delimiters> 
      <useDefaultDelimiters>false</useDefaultDelimiters> 
     </configuration> 
     </plugin> 
     ... 
    </plugins> 

Тогда в вашей команде нужно просто добавить:

mvn resources:resources 
+0

Не могли бы вы объяснить, что делает этот плагин? – Habchi

+0

Вы можете перейти сюда https://maven.apache.org/plugins/maven-resources-plugin/. Я всегда использовал его в соединении с true на определенных ресурсах, которые вы уже указали. В вашем файле свойств я думаю, что у вас есть $ {env.properties} вместо @ env.properties @. Попробуйте –

+0

Ну, к сожалению, это не работает. Синтаксис @ env.properties @ является новым с весенней загрузки. Он не распознает $ {} больше – Habchi