Czy istnieje sposób na wprowadzenie argumentów podczas uruchamiania aplikacji rozruchu sprężynowego (mvn spring-boot: run) z linii poleceń, a następnie pobranie ich w main()?Uzyskaj argumenty wiersza polecenia z rozruchu wiosennego: uruchom
Odpowiedz
Patrząc na source code sprężyny-boot-maven-plugin I stwierdził, że trzeba zrobić:
mvn spring-boot:run -Drun.arguments="arg1,arg2"
Innym sposobem, aby uzyskać więcej informacji na temat jakie opcje run
celem wtyczki spring-boot
obsługuje jest aby wykonać następujące polecenie:
mvn help:describe -Dcmd=spring-boot:run -Ddetail
Jeśli używasz Gradle i chcesz, aby móc przekazywać argumenty wiersza polecenia do Gradle bootRun
zadanie, trzeba najpierw skonfigurować, dla przykład tak:
bootRun {
if (project.hasProperty('args')) {
args project.args.split('\\s+')
}
}
i uruchomić zadanie przy użyciu gradle bootRun -Pargs="arg1 arg2"
a jeśli używasz Eclipse ...
| Parameter Name | Value | | run.arguments | "--name=Adam" |
Po przejściu wiele argumentów za pomocą -Drun.arguments, jeżeli Argument z kolei ma wartości "oddzielone przecinkami", a następnie używana jest tylko pierwsza wartość każdego argumentu. Aby tego uniknąć, powtarzaj ten argument tyle razy, ile liczba wartości.
Jest to bardziej obejście tego problemu. Nie wiem, czy istnieje alternatywa, chyba że separator jest inny - jak "|".
Np Problem:
mvn spring-boot:run -Drun.arguments="--spring.profiles.active=test,dev"
wybory tylko 'test' profil dla powyższego polecenia.
Obejście:
mvn spring-boot:run -Drun.arguments="--spring.profiles.active=test,--spring.profiles.active=dev"
Picks oba 'dev' & profile do powyższego polecenia 'test'.
fantastycznie, to mnie uratowało! –
To właśnie dla mnie zadziałało (spring-boot v1.4.3.RELEASE
).
mvn spring-boot:run -Dspring.profiles.active=test,local -Dlogback-debug=true
Należy pamiętać: Sposób przekazywania argumentów zależy od wersji głównej spring-boot
.
TLDR
na wiosnę Boot 1:
mvn spring-boot:run -Drun.arguments="argOne,argTwo"
na wiosnę Boot 2:
mvn spring-boot:run -Dspring-boot.run.arguments="argOne,argTwo"
1) spring-boot-maven-plugin
wersji oraz wersji Spring Boot
użyć ha s do wyrównania.
Według wersji głównej Wiosna startowy użyty (1
lub 2
), powinny być rzeczywiście używany spring-boot-maven-plugin
w 1
lub wersja 2
.
Jeśli Twoje pom.xml
dziedziczy z spring-boot-starter-parent
:
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>ONE_OR_TWO_VERSION</version>
</parent>
W swojej pom wersja wtyczki używane nie powinno nawet być określony jako zależność ta wtyczka jest dziedziczona:
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
...
</configuration>
</plugin>
</plugins>
W przypadku listy pom.xml
nie dziedzicząc z spring-boot-starter-parent
, nie zapomnij wyrównać wersji spring-boot-maven-plugin
z dokładną wersją , której chcesz użyć.
2) przekazując argumenty wiersza poleceń z wiosna-boot-maven-plugin: 1.xx
dla jednego argumentu:
mvn spring-boot:run -Drun.arguments="argOne"
za wiele:
mvn spring-boot:run -Drun.arguments="argOne,argTwo"
The maven plugin page dokumentuje to:
Name Type Since Description
arguments | String[] | 1.0 | Arguments that should be passed
to the application. On command line use
commas to separate multiple arguments.
User property is: run.arguments.
3) argumenty przechodzącą w linii poleceń z wiosna-boot-maven-plugin: 2.xx
dla jednego argumentu:
mvn spring-boot:run -Dspring-boot.run.arguments="argOne"
za wiele:
mvn spring-boot:run -Dspring-boot.run.arguments="argOne,argTwo"
Nie znalazłem dokumentacji wtyczki dla wersji 2.XX, która się do tego odnosi.
Ale klasa org.springframework.boot.maven.AbstractRunMojo
wtyczki spring-boot-maven-plugin:2.0.0.M3
odnosi się do obiektu użytkownika:
public abstract class AbstractRunMojo extends AbstractDependencyFilterMojo
...
@Parameter(property="spring-boot.run.arguments")
private String[] arguments;
...
protected RunArguments resolveApplicationArguments(){
RunArguments runArguments = new RunArguments(this.arguments);
addActiveProfileArgument(runArguments);
return runArguments;
}
...
}
4) wskazówka: jak przekazać więcej niż jeden argument, odstępy między przecinkami są uznawane.
mvn spring-boot:run -Dspring-boot.run.arguments="argOne,argTwo"
będą interpretowane jako ["argOne", "argTwo"]
ale tym:
mvn spring-boot:run -Dspring-boot.run.arguments="argOne, argTwo"
będą interpretowane jako ["argOne", " argTwo"]
Jak określić argumenty w sekcji "konfiguracji" pom.xml wtyczki? Próbowałem '
- 1. Integracja przy rozruchu wiosennego rozruchu
- 2. Nowy relikt wiosennego rozruchu
- 3. zaczynarki - argumenty wiersza polecenia
- 4. debugowanie wiosennego rozruchu w docker
- 5. Uruchom projekt Eclipse z wiersza polecenia
- 6. Uruchom tryb debugowania z wiersza polecenia
- 7. Uzyskaj wersję TCL z wiersza polecenia?
- 8. Uruchom ColdFusion z wiersza poleceń
- 9. Tworzenie skryptu akceptującego argumenty wiersza polecenia
- 10. Uruchom plik jar z argumentami wiersza poleceń:
- 11. Argumenty wiersza polecenia w bashie do Rscript
- 12. Argumenty wiersza polecenia Stata w trybie wsadowym
- 13. Dodawanie argumenty wiersza polecenia do aplikacji VB.Net
- 14. Kopiowanie zależności w aplikacji rozruchu wiosennego
- 15. Argumenty wiersza polecenia w dokowaniu-komponowaniu
- 16. Jak przechwytywać argumenty wiersza polecenia CMake?
- 17. Uboczny argumenty wiersza polecenia w języku C#
- 18. Jak używać wiosennego rozruchu tworząc wspólną bibliotekę
- 19. Usługa rozruchu wiosennego w celu pobrania pliku
- 20. Ubuntu - Uruchom polecenie na rozruchu z „sudo”
- 21. Uruchom polecenie PowerShell z wiersza polecenia (bez skryptu ps1)
- 22. Polecenia nadawcze z wiersza polecenia
- 23. Ostrzenie z wiersza polecenia
- 24. Argumenty wiersza polecenia bash zastępujące wartości domyślne dla zmiennych
- 25. Argumenty wiersza polecenia przy pomocy Visual Studio Unit Testing C#
- 26. Argumenty wiersza polecenia do testu przyrządu Android przy użyciu gradle
- 27. VS2010 - Zmienne makro projektu w opcjach uruchomienia Argumenty wiersza polecenia
- 28. Argumenty wiersza polecenia w programie C używające Netbeans
- 29. Argumenty wiersza polecenia programu Flash Player do "Utwórz projektor"
- 30. Domyślna pula połączeń dla tomcata podczas rozruchu wiosennego?
Świetnie, dziękuję! – sandris
@sandris Bez problemu! – geoand
Dzięki. +1 za odpowiedź. – sukrit007