Futtasson egy Java fő módszert a Gradle használatával

1. Bemutatkozás

Ebben az oktatóanyagban megvizsgáljuk a Java futtatásának különböző módszereit fő- módszer Gradle segítségével.

2. Java fő- Módszer

Számos módon futtathatunk Java-t fő- módszer Gradle-vel. Nézzük meg őket alaposan egy egyszerű program segítségével, amely üzenetet nyomtat a standard kimenetre:

public class MainClass {public static void main (String [] args) {System.out.println ("Viszlát kegyetlen világ ..."); }}

3. Futtatás az Application Plugin segítségével

Az Application plugin egy alapvető Gradle plugin, amely meghatározza a használatra kész feladatok gyűjteményét, amelyek segítenek alkalmazásunk csomagolásában és terjesztésében.

Kezdjük azzal, hogy beillesztjük a következőket a sajátunkba épít.gradle fájl:

bővítmények {id "application"} plugin alkalmazása: "java" ext {javaMain} alkalmazás {mainClassName = javaMainClass}

A plugin automatikusan létrehoz egy úgynevezett feladatot fuss csak arra van szükség, hogy rámutassunk a fő- osztály. A 9. sor zárása pontosan ezt teszi, ami lehetővé teszi számunkra a feladat kiváltását:

~ / work / baeldung / tutorials / gradle-java-exec> ./gradlew run> Feladat: Run Goodbye kegyetlen világ futtatása ... SIKER ÉPÍTÉSE 531ms-ben 2 kiválasztható feladat: 1 végrehajtva, 1 naprakész

4. Futás a JavaExec Feladat

Ezután hajtsunk végre egy egyéni feladatot a fő- módszer segítségével JavaExec feladat típusa:

feladat runWithJavaExec (típus: JavaExec) {group = "Execution" description = "Futtassa a fő osztályt a JavaExecTask segítségével" classpath = sourceSets.main.runtimeClasspath main = javaMainClass}

Meg kell határoznunk a fő- osztály az 5. vonalon, és ezen felül adja meg az osztályútvonalat. Az osztályút a build kimenet alapértelmezett tulajdonságaiból kerül kiszámításra, és tartalmazza a helyes elérési utat, ahová a lefordított osztály valójában kerül.

Figyeljük meg, hogy minden forgatókönyvben mi használja a teljes minősítésű nevet, beleértve a csomagot is fő- osztály.

Futtassuk a példánkat a JavaExec:

~ / work / baeldung / tutorials / gradle-java-exec> ./gradlew runWithJavaExec> Feladat: runWithJavaExec Viszlát kegyetlen világ ... SIKEREK TELJESÍTÉSE 526 ms-ban 2 kiválasztható feladat: 1 végrehajtva, 1 naprakész

5. Futás a Exec Feladat

Végül végre tudjuk hajtani a sajátunkat fő- osztály az alap használatával Exec feladat típusa. Mivel ez az opció lehetőséget nyújt számunkra a végrehajtás többféle konfigurálására, hajtsunk végre három egyéni feladatot, és egyenként beszéljük meg őket.

5.1. Az összeállított build kimenetből fut

Először hozzunk létre egy egyéni Exec feladat, amely hasonlóan viselkedik JavaExec:

feladat runWithExec (type: Exec) {dependOn build group = "Execution" description = "Futtassa a fő osztályt az ExecTask" parancssorral "java", "-classpath", sourceSets.main.runtimeClasspath.getAsPath (), javaMainClass}

Bármely futtatható fájlt (jelen esetben java) futtathatunk, és megadhatjuk a futtatásához szükséges argumentumokat.

Konfiguráljuk az osztályútvonalat, és rámutatunk a sajátunkra fő- osztály az 5. vonalon, és hozzáadunk egy függőséget is a épít feladat a 2. vonalon. Erre szükség van, mivel csak a mi fő- osztály az összeállítása után:

~ / work / baeldung / tutorials / gradle-java-exec> ./gradlew runWithExec> Feladat: runWithExec Viszlát kegyetlen világ ... SIKER ÉPÍTÉSE 666 ms-ban 6 végrehajtható feladat: 6 végrehajtva 

5.2. Futás egy kimeneti edényből

A második megközelítés kis alkalmazásunk üvegcsomagolásán alapul:

task runWithExecJarOnClassPath (type: Exec) {dependOn jar group = "Execution" description = "Futtassa a mainClass-ot a kimeneti jarból az osztályútvonalon az ExecTask paranccsal" commandLine "java", "-classpath", jar.archiveFile.get (), javaMainClass} 

Figyelje meg a jar sor függőségét a 2. sorban és a második argumentumot a java futtathatóra az 5. sorban. Normál edényt használunk, ezért meg kell adnunk a belépési pontot a negyedik paraméterrel:

~ / work / baeldung / tutorials / gradle-java-exec> ./gradlew runWithExecJarOnClassPath> Feladat: runWithExecJarOnClassPath Viszlát kegyetlen világ ... BUILD SIKERES 555 ms-ban 3 kivitelezhető feladat: 3 végrehajtva

5.3. Futás egy futtatható kimeneti edényből

A harmadik út az üvegcsomagolásra is támaszkodik, de a belépési pontot az a segítségével definiáljuk nyilvánvaló ingatlan:

jar {manifest {attributes ("Main-Class": javaMainClass)}} feladat runWithExecJarExecutable (type: Exec) {dependOn jar group = "Execution" description = "A kimeneti futtatható jar futtatása ExecTask" commandLine "java", "-jar ", jar.archiveFile.get ()} 

Itt, már nem kell megadnunk az osztályútvonalat, és egyszerűen futtathatjuk az üveget:

~ / work / baeldung / tutorials / gradle-java-exec> ./gradlew runWithExecJarExecutable> Feladat: runWithExecJarExecutable Viszlát kegyetlen világ ... SIKER ÉPÍTÉSE 572 ms-ban 3 végrehajtható feladat: 3 végrehajtva

6. Következtetés

Ebben a cikkben a Java futtatásának különféle módjait tártuk fel fő- módszer Gradle segítségével.

A dobozból kiindulva az Application plugin minimálisan konfigurálható feladatot biztosít a módszerünk futtatásához. A JavaExec feladat típusa lehetővé teszi számunkra a fő- módszer anélkül, hogy bármilyen plugint megadna.

Végül az általános Exec a feladat típusa különböző kombinációkban használható a java futtatható fájlokkal ugyanazok az eredmények elérése érdekében, de más feladatoktól függőséget igényel.

Szokás szerint az oktatóanyag forráskódja elérhető a GitHubon.