2016-08-12 3 views
1

Я могу видеть много сообщений о свойствах, специфичных для окружающей среды, но ни одна из них не позволяет решить мою проблему.Весенний ботинок, специфические для окружающей среды свойства

Я работаю над своим весенним загрузочным приложением, которое скажет два профиля dev/live.

Я хочу, чтобы мой проект, чтобы иметь следующую структуру:

--deployment 
    --dev 
    --myapp.properties 
    --live 
    --myapp.properties 
--src 
    --main 
    --java 
    --resources 
    --test 
    --java 

Я знаю, что если бы у меня было два application.properties в папке Мои ресурсы, скажем application-live.properties и application-dev.properties я был бы в состоянии сказать Maven, какой из них выбрать при запуске приложения с использованием:

Dspring.profiles.active=profile_name 

Но мне не нравится имя этого файла общих свойств. Поэтому я нашел этот способ, чтобы сообщить приложение, где искать свойства профиля для профиля в /deployment/<profile>/.

Я сделал это с помощью Maven построить конфигурацию задачи:

<build> 
    <resources> 
     <resource> 
      <directory>deployment/${environment}</directory> 
      <includes> 
       <include>*.properties</include> 
       <include>*.xml</include> 
      </includes> 
     </resource> 
    </resources> 
</build> 

Это будет искать ресурсы в deployment/<profile> и включить их. Хорошо, что Maven находит правильные файлы свойств окружающей среды, но, к сожалению, они включают их в target/classes/myapp.properties, которые кажутся невидимыми для Spring Boot? Как я могу сказать Maven разместить его в том же каталоге, что и application.properties, или поочередно, как я могу сказать Spring Boot, чтобы найти его там, где он сейчас?

Большое спасибо!

ответ

0

Как я могу сообщить Maven разместить его в том же каталоге, что и application.propertiesor, как можно сказать Spring Boot, чтобы найти его там, где он сейчас?

1) Вам не нужно изменять настройки Maven, поскольку он помещает конфигурационный файл в нужном месте: target/classes является корнем пути к классам, потому что все файлы из этого каталога будут скопированы в каталог WEB-INF/classes вами WAR/JAR-файл.

2) чтобы изменить имя файла свойств, вы можете использовать свойство spring.config.name, явно передавая его как -Dspring.config.name=myapp или как переменная среды SPRING_CONFIG_NAME=myapp. Более подробную информацию вы найдете в главе Change the location of external properties of an application официальной документации.

+0

Что делать, если я хочу иметь несколько файлов свойств, а не только один? И я один из каждого типа для каждой среды. –

+0

Несколько файлов 'application.properties' не поддерживаются. Но вы можете определить общие параметры в параметрах 'application.properties' и других профилях в файле' application- {profile} .properties'. –

+0

Хорошо, я решил пойти на решение 'application-{profile} .properties. У меня все еще есть эти специфические свойства профиля под моим «/ развертыванием». Благодарю. –

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