Ref - Maven ProfilesWie man Maven-Profile durch Anmerkungen/pom.xml verwaltet?
Ich will nicht Profil über die Befehlszeilenargumente angeben, während der Ausführung. Weil, wenn ich es lokal ändere, müssen Änderungen über CI-Stream vorgenommen werden.
Szenario:
Es gibt grundsätzlich zwei Profile "PROD"
und "TEST"
. Ich habe Methoden mit diesen Methoden kommentiert. Grundsätzlich verbinde ich verschiedene Datenbanken unter verschiedenen Profilen.
Während die Testklassen mit Anmerkungen versehen werden mit @ActiveProfile("TEST")
Ich betreibe Tests mvn clean test-compile failsafe:integraton-test
mit und führen Anwendung mit mvn springboot:run
Problem:
Fall 1:
Ausgabe: Nur PROD
hat mich verwandt thods laufen für PROD und TEST.
Wenn ich nicht @Profile("PROD")
verwende und nur @Profile("TEST")
benutze und verwende ich @ActiveProfiles("TEST")
wie in der Referenz angegeben. Beide mvn-Befehle ohne ein oben angegebenes Flag verwenden nur die Beans, die nicht mit Profilen versehen sind.
Fall 2:
Ausgabe: PROD
nicht ausgeführt.
Wenn ich beide PROD
verwenden und TEST
ohne Flagge, perfekt mvn clean test-compile failsafe:integraton-test
Befehl ausgeführt wird (nur wenn @ActiveProfile("TEST")
angegeben sonst würde ich eine Fahne -Dspring.profiles.active=TEST
senden), aber springboot:run
funktioniert nicht, da es keine Datenbankkonfiguration abholen und kein aktives Profil gefunden.
Dies ist der Fall, auch wenn ich ART Profile sowohl mit ART und @Primary
überraschenderweise auch wenn ich biete Befehlszeilenargument Anmerken das Ergebnis ist das gleiche. mvn springboot:run -Dspring.profiles.active=PROD
Wenn ich die Hauptklasse annotiere, in der diese Profile mit @ActiveProfiles("PROD")
ausgeführt werden, ist das Ergebnis das gleiche.
Ideal-Szenario/Erwartet:
Tests laufen mvn test-compile failsafe:integration-test
ohne Flagge vorzugsweise verwendet wird. (Bereits erreicht, aber prod funktioniert nicht)
Um Prod mit mvn springboot:run
Schwerpunkt der keine Flags zu betreiben.
Bevorzugte Änderungen:
Java Anmerkungen: Anmerkungen wie @Profile
, @ActiveProfile
, @Primary
die Frühlings-Boot- oder maven sagt, was zu verwenden.
POM.xml: Festlegen von Profilen für die Ausrichtung von Maven, was zu verwenden ist.
Wenn Sie mit 'mvn sauberen Test kompilieren ausfallsicher: integraton-test' Sie nicht den Lebenszyklus verstanden zu haben schien. Warum nicht einfach 'mvn clean verify' (Wenn Sie das Failsafe-Plugin richtig konfiguriert haben) ... Ansonsten ist das @Profile nur für Federprofile, aber nicht für maven profile ... – khmarbaise
' mvn verify' läuft auch Unit-Tests. Ich möchte nur Integrationstests durchführen. –
Sie mischen Federprofile und Maven-Profile. Beide sind verschiedene Dinge und dienen einem anderen Zweck. –