Korzystanie z właściwości Maven settings.xml w kontekście Spring
Mam Mavensettings.xml
plik w moim~/.m2
informator; To wygląda tak:
<settings>
<profiles>
<profile>
<id>mike</id>
<properties>
<db.driver>org.postgresql.Driver</db.driver>
<db.type>postgresql</db.type>
<db.host>localhost</db.host>
<db.port>5432</db.port>
<db.url>jdbc:${db.type}://${db.host}:${db.port}/dbname</db.url>
</properties>
</profile>
</profiles>
<activeProfiles>
<activeProfile>mike</activeProfile>
</activeProfiles>
<servers>
<server>
<id>server_id</id>
<username>mike</username>
<password>{some_encrypted_password}</password>
</server>
</servers>
</settings>
Chciałbym użyć tych właściwości dwukrotnie
Raz w Maven'sintegration-test
faza ustawiania i niszczenia mojej bazy danych. Używając filtrowania Maven, działa to doskonale.Po raz drugi podczas uruchamiania mojej aplikacji Spring, co oznacza, że muszę zastąpić te właściwości w moimservlet-context.xml
plik podczas Maven'sresources:resources
faza. Dla właściwości w górnej częścisettings.xml
, Jak na przykład${db.url}
, to działa dobrze.Nie wiem, jak zastąpić moją nazwę użytkownika bazy danych i (odszyfrowane) hasło na wiosnęservlet-context.xml
plik.Odpowiednia część mojegoservlet-context.xml
plik wygląda tak:
<bean id="myDataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
<property name="driverClassName"><value>${db.driver}</value></property>
<property name="url"><value>${db.url}</value></property>
<property name="username"><value>${username}</value></property>
<property name="password"><value>${password}</value></property>
</bean>
Ostatecznym celem dla każdego programisty jest posiadanie własnych ustawień Maven (i bazy danych na ich własnej maszynie do testowania integracji) ... I podobna konfiguracja na serwerze Jenkins. Nie chcemy udostępniać wspólnej nazwy użytkownika / hasła / itd.