Kør en Java-hovedmetode i Maven

1. Oversigt

I denne korte vejledning skal vi se, hvordan man kører vilkårlige hovedmetoder fra enhver Java-klasse ved hjælp af Maven.

2. Den exec-maven-plugin

Lad os antage, at vi har følgende klasse:

offentlig klasse Exec {privat statisk endelig Logger LOGGER = LoggerFactory.getLogger (Exec.class); public static void main (String [] args) {LOGGER.info ("Kører hovedmetoden"); if (args.length> 0) {LOGGER.info ("Liste over argumenter: {}", Arrays.toString (args)); }}}

Og vi vil udføre dens hovedmetode fra kommandolinjen via Maven.

For at gøre dette kan vi bruge exec-maven-plugin. For at være mere specifik, exec: java mål fra dette plugin udfører den leverede Java-klasse med det vedlagte projektafhængighed som klassestien.

At udføre hovedmetoden til Exec klasse, skal vi videregive klassens fuldt kvalificerede navn til pluginet:

$ mvn kompilere exec: java -Dexec.mainClass = "com.baeldung.main.Exec" 02: 26: 45.112 INFO com.baeldung.main.Exec - Kørsel af hovedmetoden

Som vist ovenfor bruger vi exec. hovedklasse systemegenskab for at passere det fuldt kvalificerede klassenavn.

Vi skal også sørge for, at klassestien er klar, før vi kører hovedmetoden. Derfor kompilerer vi kildekoden, før vi udfører hovedmetoden.

Vi kan opnå det samme med almindeligt java og javac. Dette kan dog være besværligt, når vi arbejder med en temmelig stor klassesti. Tværtimod,når du bruger dette plugin, sørger Maven automatisk for at udfylde klassestien.

3. Bestået argumenter

Det er også muligt at overføre argumenter fra kommandolinjen til hovedmetoden. For at gøre det kan vi bruge exec.args systemegenskab:

$ mvn kompilere exec: java -Dexec.mainClass = "com.baeldung.main.Exec" \ -Dexec.args = "Første sekund" 02: 31: 08.235 INFO com.baeldung.main.Exec - Kører hovedmetoden 02: 31: 08.236 INFO com.baeldung.main.Exec - Liste over argumenter: [Første, Anden]

Som vist ovenfor sender vi en rumadskilt liste over argumenter. Desuden kan vi bruge en kommasepareret liste over argumenter via exec.arguments systemegenskab:

$ mvn kompilere exec: java -Dexec.mainClass = "com.baeldung.main.Exec" \ -Dexec.arguments = "Hej verden, farvel" 02: 32: 25.616 INFO com.baeldung.main.Exec - Kører hovedmetoden 02: 32: 25.618 INFO com.baeldung.main.Exec - Liste over argumenter: [Hello World, Bye]

Disse to muligheder kan være nyttige, når vi vil bruge afgrænseren (mellemrum eller komma) i selve argumentet.

4. Brugerdefineret konfiguration

Vi kan også eksplicit erklære pluginafhængighed i vores pom.xml. På denne måde kan vi bruge brugerdefinerede og standardkonfigurationer.

For eksempel kan vi angive en standardhovedklasse i plugins konfiguration:

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

Hvis vi ikke nu angiver det fulde kvalificerede navn på den ønskede klasse, com.baeldung.main.Exec vil blive brugt:

$ mvn compile exec: java 02: 33: 14.197 INFO com.baeldung.main.Exec - Kører hovedmetoden

Det er dog stadig muligt at tilsidesætte denne standardkonfiguration via en eksplicit udføre.hovedklasse systemegenskab.

Desuden kan vi også specificere standardprogramargumenter i vores konfiguration:

 com.baeldung.main.Exec første sekund 

På denne måde behøver vi ikke videregive disse argumenter på kommandolinjen:

$ mvn clean compile exec: java 02: 34: 24.448 INFO com.baeldung.main.Exec - Kører hovedmetoden 02: 34: 24.450 INFO com.baeldung.main.Exec - Liste over argumenter: [First, Second]

Ud over disse konfigurationer er der mange flere tilgængelige, som er dækket af den officielle dokumentation.

5. Konklusion

I denne korte artikel så vi, hvordan man kører hovedmetoderne fra kommandolinjen via exec-maven-plugin.

Som sædvanligt er alle eksemplerne tilgængelige på GitHub.


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