Hay un complemento simple de Eclipse para ejecutar Gradle, que solo usa la línea de comandos para iniciar gradle.
¿Qué es gradle analógico para maven compilar y ejecutar?
mvn compile exec:java -Dexec.mainClass=example.Example
De esta forma se gradle.buildpodría ejecutar cualquier proyecto con .
ACTUALIZACIÓN: Hubo una pregunta similar ¿ Cuál es el equivalente gradle del complemento ejecutivo de maven para ejecutar aplicaciones Java? preguntado antes, pero la solución sugirió alterar cada proyectobuild.gradle
package runclass;
public class RunClass {
public static void main(String[] args) {
System.out.println("app is running!");
}
}
Luego ejecutando 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

Respuestas:
No hay un equivalente directo a
mvn exec:javaen gradle, debe aplicar elapplicationcomplemento o tener unaJavaExectarea.applicationenchufarActivar el complemento:
Configúrelo de la siguiente manera:
En la línea de comando, escriba
JavaExectareaDefina una tarea, digamos
execute:Para correr, escribe
gradle -PmainClass=Boo execute. Usted obtienemainClasses una propiedad que se pasa dinámicamente en la línea de comandos.classpathestá configurado para recoger las últimas clases.Si no pasa la
mainClasspropiedad, ambos enfoques fallan como se esperaba.fuente
build.gradle,classpathestá codificado para recoger las clases java de tu ruta de clases fuentebuild.gradlejava . Incluso cuando ejecuta,mvn exec:javala ruta de clase está configurada para recoger los archivos fuente de Java en el directorio actual de maven. En laJavaExectarea, he hecho lo mismo. Cambie elclasspathde su fuente de Java y la ruta de clases cambiará automáticamente. No haymvn exec:javaequivalente en el sentido degradleque debe aplicar elapplicationcomplemento o tener unaJavaExectarea.task execute(...a build.gradle, todas las demás tareas fallan con el mismo mensaje de error que indica que gradle espera que se transmita mainClass. No puedo limpiar ni construir.main = mainClassconmain = getProperty("mainClass")y ya no te gritará .gradle build, vea mi respuesta a continuación.Solo necesita usar el complemento de la aplicación Gradle :
Y luego simplemente
gradle run.Como señala Teresa, también puede configurarlo
mainClassNamecomo una propiedad del sistema y ejecutarlo con un argumento de línea de comando.fuente
build.graldle. Pero tengo un proyecto con muchas clases de utilidades, que cada una tiene un método principal.System.getProperty("mainClass"), 3) el código fuente está donde se supone que debe estar de acuerdo con la convención, 4) todo funciona cuando ponesRunClassel archivo de compilación?build.gradletienemainClassName = "runclass.RunClass". El parámetro-DmainClassno tiene ningún efecto:gradle run -DmainClass=runclass.RunClass2ejecuta la clase principal codificada.ext.mainClass = project.hasProperty('mainClass') ? project.getProperty('mainClass') : 'org.gradle.sample.Main' ; apply plugin:'application' ; mainClassName = ext.mainClassahora, cuando lo hagasgradle -PmainClass=Foo run, debería usarFoocomo clase principal.Ampliando la respuesta de First Zero, supongo que desea algo en el que también pueda ejecutar
gradle buildsin errores.Ambos
gradle buildygradle -PmainClass=foo runApptrabajar con esto:donde estableces tu clase principal predeterminada.
fuente
plugins { application }; application { mainClassName = if (project.hasProperty("mainClass")) project.properties.get("mainClass").toString() else "Foo" }Scannerpara leernextLine(). ¿Alguna idea de una solución para esto? Sigue obteniendo "no se encuentra ninguna línea" cuando se ejecuta con runApp.Puede parametrizarlo y pasar gradle clean build -Pprokey = goodbye
fuente