Pokrenite Javnu glavnu metodu u Mavenu

1. Pregled

U ovom kratkom vodiču vidjet ćemo kako pokretati proizvoljne glavne metode iz bilo koje Java klase koristeći Maven.

2. The exec-maven-plugin

Pretpostavimo da imamo sljedeću klasu:

javna klasa Exec {private static final Logger LOGGER = LoggerFactory.getLogger (Exec.class); javna statička void glavna (String [] args) {LOGGER.info ("Pokretanje glavne metode"); if (args.length> 0) {LOGGER.info ("Popis argumenata: {}", Arrays.toString (args)); }}}

A mi želimo izvršiti njegovu glavnu metodu iz naredbenog retka putem Mavena.

Da bismo to učinili, možemo koristiti exec-maven-plugin. Da budemo precizniji, exec: java Cilj iz ovog dodatka izvršava isporučenu Java klasu s priloženim ovisnostima projekta kao put klase.

Izvršiti glavnu metodu Izv klase, moramo dodati potpuno kvalificirani naziv klase dodatku:

$ mvn compile exec: java -Dexec.mainClass = "com.baeldung.main.Exec" 02: 26: 45.112 INFO com.baeldung.main.Exec - Pokretanje glavne metode

Kao što je gore prikazano, koristimo exec.mainClass svojstvo sustava za prosljeđivanje potpuno kvalificiranog naziva klase.

Također, moramo se pobrinuti da je put predavanja spreman prije pokretanja glavne metode. Zbog toga sastavljamo izvorni kod prije izvođenja glavne metode.

Isto možemo postići i običnim Java i javac. Međutim, ovo može biti nezgodno kada radimo s prilično velikim putovima predavanja. Baš suprotno,kada koristi ovaj dodatak, Maven se automatski brine o popunjavanju staze do razreda.

3. Pronošenje argumenata

Također je moguće proslijediti argumente iz naredbenog retka u glavnu metodu. Da bismo to učinili, možemo koristiti exec.args svojstvo sustava:

$ mvn compile exec: java -Dexec.mainClass = "com.baeldung.main.Exec" \ -Dexec.args = "First Second" 02: 31: 08.235 INFO com.baeldung.main.Exec - Pokretanje glavne metode 02: 31: 08.236 INFO com.baeldung.main.Exec - Popis argumenata: [Prvi, Drugi]

Kao što je gore prikazano, donosimo razmak odvojeni popisom argumenata. Štoviše, možemo koristiti popis argumenata odvojenih zarezom putem izvršni argumenti svojstvo sustava:

$ mvn compile exec: java -Dexec.mainClass = "com.baeldung.main.Exec" \ -Dexec.arguments = "Hello World, Bye" 02: 32: 25.616 INFO com.baeldung.main.Exec - Pokretanje glavne metode 02: 32: 25.618 INFO com.baeldung.main.Exec - Popis argumenata: [Hello World, Bye]

Ove dvije opcije mogu biti korisne kada želimo koristiti graničnik (razmak ili zarez) u samom argumentu.

4. Prilagođena konfiguracija

Također možemo izričito proglasiti ovisnost dodatka u našem pom.xml. Na taj način možemo koristiti prilagođene i zadane konfiguracije.

Na primjer, možemo odrediti zadanu glavnu klasu u konfiguraciji dodatka:

   org.codehaus.mojo exec-maven-plugin 3.0.0 com.baeldung.main.Exec 

Ako ne odredimo potpuno kvalificirano ime željene klase, com.baeldung.main.Exec koristit će se:

$ mvn compile exec: java 02: 33: 14.197 INFO com.baeldung.main.Exec - Pokretanje glavne metode

Međutim, još uvijek je moguće nadjačati ovu zadanu konfiguraciju putem eksplicitnog izvršiti.mainClass svojstvo sustava.

Štoviše, također možemo odrediti zadane programske argumente u našoj konfiguraciji:

 com.baeldung.main.Exec First Second 

Na ovaj način nećemo morati prosljeđivati ​​ove argumente u naredbeni redak:

$ mvn clean compile exec: java 02: 34: 24.448 INFO com.baeldung.main.Exec - Pokretanje glavne metode 02: 34: 24.450 INFO com.baeldung.main.Exec - Popis argumenata: [Prvi, Drugi]

Uz ove konfiguracije, postoji još mnogo dostupnih koji su pokriveni u službenoj dokumentaciji.

5. Zaključak

U ovom kratkom članku vidjeli smo kako pokrenuti glavne metode iz naredbenog retka putem exec-maven-plugin.

Kao i obično, svi su primjeri dostupni na GitHubu.


$config[zx-auto] not found$config[zx-overlay] not found