maven ustawienie systemowej zmiennej

0

Cześć

W moim projekcie używam springa i chcę odpowiednio ustawić profil. W mavenie ustawiłem sobie 3 profile dla projektu :

  1. dev - (mvn clean install -Pdev lub mvn clean install) jest to profil domyśln
  2. prod - (mvn clean install -Pprod) jest to profil produkcyjny
  3. test - (mvn verify -Ptest) profil dla testów integracyjnych

Wszystko działa mi dobrze jeśli wywołam profil z ustawieniami np dla testów:
mvn clean install -Ptest -Dspring.profiles.active=test

Działa Ok, jednak jak się można domyślić chciałbym uniknąć wpisywania -Dspring.profile.active=test, czyli kiedy wybiorę dany profil (oprócz domyślnego) ta zmienna powinna się ustawić . Próbowałem w mavenie coś takiego :

<profile>
			<id>test</id>
			<properties>				
				<!-- Only integration tests are run. -->
				<skip.integration.tests>false</skip.integration.tests>
				<skip.unit.tests>true</skip.unit.tests>
                                <spring.profiles.active>test</spring.profiles.active>
			</properties>
		</profile>

Jednak nie mam pojęcia dlaczego to nie działa przecież opcja -D to ustawienie tak naprawdę zmiennej. Dlaczego więc taka konfiguracja nie działa w pomie ?
Jak mogę ustawić taką zmienną dla springa w moim pomie ?

0

w web.xml zrobi sobie <spring.profile>${profile}</spring.profile> czy jak to się tam robi a w maven daj aby filtrowa resourcy i podmieniał zmienne

0

Mam coś takiego w pliku konfiguracyjnym:
@PropertySource("classpath:properties/app-${spring.profiles.active:dev}.properties")

Próbowałem wykonać filtrację zmiennych

<filters>
<filter>profiles/${build.profile.id}/config.properties</filter>
</filters>

W pliku config.properties mam ustawioną zmienną jednak to nie działa, nie przypisuje mi tej zmiennej do adnotacji w wyrażeniu ${spring.profiles.active:dev} ....

1 użytkowników online, w tym zalogowanych: 0, gości: 1