Il y a simple plugin Eclipse pour exécuter Gradle, il suffit d’utiliser la méthode de la ligne de commande pour lancer gradle.
Qu'est-ce que gradle analog pour maven compiler et exécuter mvn compile exec:Java -Dexec.mainClass=example.Example
De cette façon, tout projet avec gradle.build
pourrait être exécuté.
MISE À JOUR: Il y avait une question similaire Quel est l'équivalent du plugin exec de maven pour l'exécution de Java applications? demandé auparavant, mais la solution suggéra de modifier chaque projet build.gradle
package runclass;
public class RunClass {
public static void main(String[] args) {
System.out.println("app is running!");
}
}
Puis en exécutant gradle run -DmainClass=runclass.RunClass
:run FAILED
FAILURE: Build failed with an exception.
* What went wrong:
Execution failed for task ':run'.
> No main class specified
Utilisez JavaExec
. Par exemple, insérez ce qui suit dans build.gradle
task execute(type:JavaExec) {
main = mainClass
classpath = sourceSets.main.runtimeClasspath
}
Pour exécuter gradle -PmainClass=Boo execute
. Vous obtenez
$ gradle -PmainClass=Boo execute
:compileJava
:compileGroovy UP-TO-DATE
:processResources UP-TO-DATE
:classes
:execute
I am BOO!
mainClass
est une propriété passée dynamiquement en ligne de commande. classpath
est configuré pour récupérer les dernières classes.
Si vous ne transmettez pas la propriété mainClass
, cela échoue comme prévu.
$ gradle execute
FAILURE: Build failed with an exception.
* Where:
Build file 'xxxx/build.gradle' line: 4
* What went wrong:
A problem occurred evaluating root project 'Foo'.
> Could not find property 'mainClass' on task ':execute'.
MISE À JOUR à partir de commentaires:
Il n'y a pas d'équivalent mvn exec:Java
dans Gradle, vous devez appliquer le plug-in d'application ou créer une tâche JavaExec.
Vous devez juste utiliser le plugin Gradle Application :
apply plugin:'application'
mainClassName = "org.gradle.sample.Main"
Et puis simplement gradle run
.
Comme le souligne Teresa, vous pouvez également configurer mainClassName
en tant que propriété système et l'exécuter avec un argument de ligne de commande.
En développant la réponse de First Zero, je suppose que vous voulez quelque chose où vous pouvez aussi exécuter gradle build
sans erreur.
gradle build
et gradle -PmainClass=foo runApp
fonctionnent tous les deux avec ceci:
task runApp(type:JavaExec) {
classpath = sourceSets.main.runtimeClasspath
main = project.hasProperty("mainClass") ? project.getProperty("mainClass") : "package.MyDefaultMain"
}
où vous définissez votre classe principale par défaut.