Futtasson Java Java metódust a Maven-ben
1. Áttekintés
Ebben a rövid bemutatóban megnézzük, hogyan lehet tetszőleges fő módszereket futtatni bármely Java osztályból a Maven használatával.
2. A exec-maven-plugin
Tegyük fel, hogy a következő osztályunk van:
nyilvános osztály Exec {private static final Logger LOGGER = LoggerFactory.getLogger (Exec.class); public static void main (String [] args) {LOGGER.info ("A fő módszer futtatása"); if (args.hossz> 0) {LOGGER.info ("Argumentumlista: {}", Arrays.toString (args)); }}}
És fő módszerét a parancssorból akarjuk végrehajtani Mavenen keresztül.
Ennek érdekében használhatjuk a exec-maven-plugin. Pontosabban: a exec: java A plugin célja a mellékelt Java osztályt hajtja végre, a csatoló projekt függőségeivel osztályosztályként.
A fő módszer végrehajtása Exec osztály, át kell adnunk az osztály teljes minősítésű nevét a bővítménynek:
$ mvn compile exec: java -Dexec.mainClass = "com.baeldung.main.Exec" 02: 26: 45.112 INFO com.baeldung.main.Exec - A fő módszer futtatása
Amint a fentiekből látható, a exec.mainClass rendszer tulajdonság a teljes minősítésű osztálynév átadásához.
A fő módszer futtatása előtt meg kell győződnünk arról, hogy az osztályút készen áll-e. Ezért állítjuk össze a forráskódot a fő módszer végrehajtása előtt.
Ugyanezt elérhetjük a sima használatával is Jáva és javac. Ez azonban nehézkes lehet, ha elég nagy osztályú pályával dolgozunk. Ellenkezőleg,a plugin használatakor Maven automatikusan gondoskodik az osztályút feltöltéséről.
3. Érvek átadása
Az is lehetséges, hogy argumentumokat adjunk át a parancssorból a fő módszerbe. Ennek érdekében használhatjuk a exec.args rendszer tulajdonság:
$ mvn compile exec: java -Dexec.mainClass = "com.baeldung.main.Exec" \ -Dexec.args = "Első másodperc" 02: 31: 08.235 INFO com.baeldung.main.Exec - A fő módszer futtatása 02: 31: 08.236 INFO com.baeldung.main.Exec - Érvek listája: [Első, Második]
Amint a fentiekből látható, szóközzel elválasztott argumentumlistát adunk át. Ezenkívül vesszővel elválasztott argumentumlistát is használhatunk a exec.arguments rendszer tulajdonság:
$ mvn compile exec: java -Dexec.mainClass = "com.baeldung.main.Exec" \ -Dexec.arguments = "Hello World, Bye" 02: 32: 25.616 INFO com.baeldung.main.Exec - A fő módszer futtatása 02: 32: 25.618 INFO com.baeldung.main.Exec - Érvek listája: [Hello World, Bye]
Ez a két lehetőség akkor lehet hasznos, ha az elválasztót (szóközt vagy vesszőt) magunkban akarjuk használni.
4. Egyéni konfiguráció
Kifejezetten deklarálhatjuk a plugin függőséget is a pom.xml. Így használhatunk egyedi és alapértelmezett konfigurációkat.
Például megadhatunk egy alapértelmezett főosztályt a plugin konfigurációjában:
org.codehaus.mojo exec-maven-plugin 3.0.0 com.baeldung.main.Exec
Ha nem adjuk meg a kívánt osztály teljes nevét, com.baeldung.main.Exec használva lesz:
$ mvn compile exec: java 02: 33: 14.197 INFO com.baeldung.main.Exec - A fő módszer futtatása
Az alapértelmezett konfigurációt azonban továbbra is explicit módon lehet felülbírálni exec.mainClass rendszer tulajdonság.
Ezenkívül megadhatunk alapértelmezett program argumentumokat is a konfigurációnkban:
com.baeldung.main.Exec első másodperc
Így nem kell ezeket az argumentumokat átadnunk a parancssorban:
$ mvn clean compile exec: java 02: 34: 24.448 INFO com.baeldung.main.Exec - A fő módszer futtatása 02: 34: 24.450 INFO com.baeldung.main.Exec - Argumentumlista: [Első, Második]
Ezen konfigurációk mellett még rengeteg elérhető, amelyekre a hivatalos dokumentáció vonatkozik.
5. Következtetés
Ebben a rövid cikkben láttuk, hogyan futtathatja a főbb módszereket a parancssorból a exec-maven-plugin.
Szokás szerint az összes példa elérhető a GitHubon.