Лучший подход сделает ваши свойства подключения к базе данных (например, имя пользователя/пароль, url и т. Д.) Внешним. В рамках профиля вы можете определить для каждого пользователя значения для свойств и использовать фильтрацию ресурсов maven для их установки.
В вашей Maven проект, который вы бы, например, иметь конфигурационный каталог (в src/config/settings.prp
), который содержит, например, следующие данные:
userName = ${userName}
password = ${password}
db-driver = ${dbDriver}
db-url = ${dbUrl}
в пределах ПОМ вы бы
<project ...>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
<version>2.7</version>
<executions>
<execution>
<id>filter-db-settings</id>
<goals>
<goal>copy-resources</goal>
</goals>
<configuration>
<outputDirectory>${project.build.directory}/config</outputDirectory>
<resources>
<resource>
<directory>${project.basedir}/src/config</directory>
</resource>
<filtering>true</filtering>
</resources>
</configuration>
</execution>
</executions>
</plugin>
<plugins>
</build>
<profiles>
<profile>
<id>user-A</id>
<properties>
<userName>userA</userName>
<password>secret</password>
<dbDriver>com.driver.db</dbDriver>
<dbUrl>jdbc://db-url</dbUrl>
</properties>
</profile>
<profiles>
</project>
плагином будет фильтровать файлы в src/config
и заменить заполнители maven значениями, указанными в вашем профиле. Поскольку в профиле содержится пароль, вы можете перенести его на свой settings.xml
, чтобы он не был проверен с самим проектом, возможно, подвергая пароль нежелательным сторонам.
ВНИМАНИЕ: Не проверял плагин наверху, поэтому может содержать небольшие ошибки.
Лучше всего поместить файл недвижимости NOT в пределах произведенного артефакта. Делая это, вы получаете свободу использовать один и тот же артефакт для разных пользователей, и единственное, что вам нужно изменить, это свойства во внешнем файле свойств (который будет предоставлен пользователю рядом с артефактом).
В следующей статье объясняется, как вы можете экстеризировать свойства с помощью пружины Externalized Configuration.
Что именно вы подразумеваете под «выполнением подключения к базе данных»? Maven - это инструмент построения, что должно произойти с данными из базы данных во время сборки maven? – f1sh
По какой причине вам необходимо выполнить подключение к базе данных? Для ваших тестов? –
@Nicolas yes Я хочу выполнить для таких тестов, как имя пользователя и пароль. поэтому, где я должен это делать, я не понимаю. пожалуйста, помогите мне в этом. – ketan