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.