Привет! Я начинаю новый проект веб-разработки со своей командой, используя Hibernate и Spring MVC.Мы будем работать с Maven2 и использовать среду IDE NetBeans.Наши прошлые проекты использовали муравей для системы сборки.Мы будем использовать Atlassian Bamboo для нашего CI-сервера.
Мой вопрос касается наилучшей практики переключения между средами dev / test / qa / производственной сборки, которые имеют разные конфигурации.
Более конкретно, нашДля сред разработки требуются две конфигурации: база данных общего сервера и локальная база данных HSQL для автономной разработки.Наша тестовая среда также требует использования HSQL для обеспечения предсказуемых тестов.
Я пытаюсь найти лучший подход с Maven для выбора между этими средами, с муравьем, который мы только что использовали, чтобы иметь <copy>
цели, которые могли быскопируйте наши файлы конфигурации из предопределенных каталогов перед сборкой и перепишите некоторые .properties
файлы.
До сих пор я обнаружил, что мы могли бы использовать профили maven, но не совсем уверен, что для этого лучше всего подходит,в настоящее время я только нашел, как установить определенные свойства, используя этот подход, но не нашел, как задать определенные конфигурации гибернации.
Я прошу прощения за мое редкое понимание Maven, мы переключаемся на Maven, так как мы нашлиразрешение зависимостей избавит нас от огромного бремени.
Спасибо за вашу помощь и терпение.
ОБНОВЛЕНИЕ : более простой способ, если кому-то интересно.
Идея состоит в том, чтобы объединить использование обоих профилей с тегом ресурсов.Создайте отдельные папки для каждой целевой среды и включите их в ресурсы.
<build>
<resources>
<resource>
<!-- Needs to be here globally for common resources. -->
<directory>src/main/resources</directory>
</resource>
</resources>
...
</build>
<profiles>
<profile>
<id>dev</id>
<build>
<resources>
<resource>
<!-- will add anything here to the resources. -->
<directory>src/main/resource-overrides/dev</directory>
</resource>
</resources>
</build>
</profile>
<profile>
<id>qa</id>
<build>
<resources>
<resource>
<directory>src/main/resource-overrides/qa</directory>
</resource>
</resources>
</build>
</profile>
....
</profiles>
Обратите внимание: если вы хотите, чтобы ресурсы, которые перезаписывают ресурсы по умолчанию в профиле, вам нужно включить расположение ресурсов по умолчанию в свой ресурс.профиль после определения переопределения, например, так:
<profile>
<id>prod</id>
<build>
<resources>
<resource>
<directory>src/main/resource-overrides/prod</directory>
</resource>
<resource>
<directory>src/main/resources</directory>
</resource>
</resources>
</build>
</profile>