Spustite hlavnú metódu Java v programe Maven
1. Prehľad
V tomto krátkom tutoriále sa dozvieme, ako spustiť ľubovoľné hlavné metódy z ktorejkoľvek triedy Java pomocou nástroja Maven.
2. The exec-maven-plugin
Predpokladajme, že máme nasledujúcu triedu:
public class Exec {private static final Logger LOGGER = LoggerFactory.getLogger (Exec.class); public static void main (String [] args) {LOGGER.info ("Spustenie hlavnej metódy"); if (args.length> 0) {LOGGER.info ("Zoznam argumentov: {}", Arrays.toString (args)); }}}
A chceme vykonať jeho hlavnú metódu z príkazového riadku cez Maven.
Na tento účel môžeme použiť exec-maven-plugin. Konkrétnejšie exec: java cieľ z tohto pluginu vykoná dodanú triedu Java so závislosťami priloženého projektu ako cestu k triede.
Vykonať hlavnú metódu Exec triedy, musíme do pluginu odovzdať plne kvalifikovaný názov triedy:
$ mvn compile exec: java -Dexec.mainClass = "com.baeldung.main.Exec" 02: 26: 45.112 INFO com.baeldung.main.Exec - spustenie hlavnej metódy
Ako je uvedené vyššie, používame exec.mainClass vlastnosť systému na odovzdanie úplného názvu triedy.
Pred spustením hlavnej metódy sa tiež musíme ubezpečiť, že je cesta k triedam pripravená. Preto pred vykonaním hlavnej metódy zostavujeme zdrojový kód.
To isté môžeme dosiahnuť obyčajnou java a javac. To však môže byť ťažkopádne, keď pracujeme s dosť veľkou triedou ciest. Naopak,pri použití tohto pluginu sa Maven automaticky postará o vyplnenie cesty triedy.
3. Absolvovanie argumentov
Je tiež možné preniesť argumenty z príkazového riadku do hlavnej metódy. Na tento účel môžeme použiť exec.args vlastnosť systému:
$ mvn compile exec: java -Dexec.mainClass = "com.baeldung.main.Exec" \ -Dexec.args = "Prvá sekunda" 02: 31: 08.235 INFO com.baeldung.main.Exec - Spustenie hlavnej metódy 02: 31: 08.236 INFO com.baeldung.main.Exec - Zoznam argumentov: [prvý, druhý]
Ako je uvedené vyššie, odovzdávame zoznam argumentov oddelených medzerami. Ďalej môžeme použiť zoznam argumentov oddelených čiarkou prostredníctvom vykon.argumenty vlastnosť systému:
$ mvn compile exec: java -Dexec.mainClass = "com.baeldung.main.Exec" \ -Dexec.arguments = "Hello World, Bye" 02: 32: 25,616 INFO com.baeldung.main.Exec - spustenie hlavnej metódy 02: 32: 25.618 INFO com.baeldung.main.Exec - Zoznam argumentov: [Hello World, Bye]
Tieto dve možnosti môžu byť užitočné, keď chceme v samotnom argumente použiť oddeľovač (medzeru alebo čiarku).
4. Vlastná konfigurácia
Môžeme tiež výslovne deklarovať závislosť pluginu v našom pom.xml. Týmto spôsobom môžeme použiť vlastné a predvolené konfigurácie.
Napríklad môžeme v konfigurácii doplnku určiť predvolenú hlavnú triedu:
org.codehaus.mojo exec-maven-plugin 3.0.0 com.baeldung.main.Exec
Ak teraz nezadáme úplný názov požadovanej triedy, com.baeldung.main.Exec bude použitý:
$ mvn compile exec: java 02: 33: 14.197 INFO com.baeldung.main.Exec - spustenie hlavnej metódy
Stále je však možné túto predvolenú konfiguráciu prepísať explicitným spôsobom vykon.mainClass systémový majetok.
Okrem toho môžeme v našej konfigurácii určiť aj predvolené argumenty programu:
com.baeldung.main.Exec prvá sekunda
Týmto spôsobom nebudeme musieť zadávať tieto argumenty do príkazového riadku:
$ mvn clean compile exec: java 02: 34: 24.448 INFO com.baeldung.main.Exec - Spustenie hlavnej metódy 02: 34: 24.450 INFO com.baeldung.main.Exec - Zoznam argumentov: [prvý, druhý]
Okrem týchto konfigurácií existuje ešte veľa ďalších, ktoré sú obsiahnuté v oficiálnej dokumentácii.
5. Záver
V tomto krátkom článku sme videli, ako spustiť hlavné metódy z príkazového riadku pomocou exec-maven-plugin.
Ako obvykle sú všetky príklady dostupné na GitHub.