Наши проекты в Java, как правило, имеют various файлы конфигурации проекта и окружающей среды, как например в конфигурации JPA (persistence.xml), настройки сообщений JSF или конфигурации JSF (faces-config.xml).
Эссес аркивос сан-ос-рекурсос-ду-носсо проект и геральменте финам на пассате главная/ресурсы
подразделение тест/ресурсы
. Обычно у нас есть один вариант-файл для каждой среды, которые являются, или нет, хранятся вместе с нашим исходный код в хранилище (большой недостаток безопасности, потому что мы уезжаем данных доступа к производственной среде в поле зрения) или даже скопированы или изменены вручную после сборки: s.
Maven есть плагин под названием Resources, который несет ответственность за копии из ресурсов нашего проекта. По умолчанию, плагин просто копирует файлы из нашей папки src (main или test) в папку сборки проекта (target). Тем не менее, плагин Resources можете использовать другой плагин Maven для выполнения обработки файлов, позволяя, таким образом, оставить некоторые его части динамики.
Этот плагин Maven-Filtering, он позволяет нам определить, в файлах ресурсов переменные, которые могут быть заменены на момент сборки нашего проекта. Например, в нашем файле конфигурации JPA мы можем использовать переменную, которая содержит имя Источника данных, который мы будем использовать, и для каждой среды, мы можем subsituir этой переменной соответствующее значение. Это интересно если у вас есть конвейер CI (Continuous Integration), так как на нем вы можете задать имя Источника данных Тестирования с помощью сценария сборки, тестирования.
Абайшо, переходи к примеру, делай persistence.xml в чем разница ума вариавель datasource.name que sera utilizada динамический механизм для работы со сценарием сборки.
${datasource.name}
Como poden ver, uma variável é definida entre ${}
, ассимилировать como как язык выражения для JSP.
Парати веро Фильтрация durante o сборка, точная настройка без носо POM.xml сечао строит абайшо.
src/main/resources/META-INF true
В течение ресурсы, мы можем определить файл или папку с файлами, которые будут обработаны и также включена в Фильтрации через tag filtering.
Значения этих переменных могут быть определены несколькими способами:
Файлы properties (свойства) в формате: <переменная>=<значение>
Значения, определенные в разделе /
наше ПОМ.xml Свойства, установленные в разделах наше ПОМ.xml Свойства, проведенных на выполнение Maven (флаг -D) в формате
<переменная>=<значение>
Ниже приведен пример сценария, который делает сборки нашего проекта, передавая Data Source (могут быть размещены в конвейере нашего Дженкинс).
mvn clean install -Ddatasource.name=java:/ds/BancoDeTestes
выделено жирным шрифтом, ниже нашей переменной, определенной в наше упорство.xml, который после сборки будет иметь следующий результат:
java:/ds/BancoDeTestes
Благодаря этому, мы можем увидеть, насколько мощным Maven может быть и как он может облегчить нашу жизнь. Вместо того, надо всегда иметь, что изменить в build формирования или иметь несколько файлов для каждой среды, мы можем просто передать его в качестве аргумента в сборки или файлов с нашими ценностями.
Примеры вероятных пользы было бы в buid проекта, где мы могли бы установить динамически IP-адрес или имя наш контейнер Docker, который содержит базу данных для тестирования, мы можем установить в IP в файле standalone.xml нашей Wildfly или же в сценарий, который добавляет наш источник данных на нем.
Оригинал: “https://dev.to/wesleyegberto/maven-resources-dinamicos-mn3”