Gradle для выполнения класса Java (без изменения сборки.Gradle в)
здесь простой плагин Eclipse для запуска Gradle, который просто использует способ командной строки для запуска gradle.
что такое аналог gradle для компиляции и запуска maven
mvn compile exec:java -Dexec.mainClass=example.Example
таким образом любой проект с gradle.build может быть запущен.
обновление: был аналогичный вопрос Что такое gradle эквивалент плагина Maven exec для запуска приложений Java? спросил раньше, но решение предложило изменить каждый проект build.gradle
package runclass;
public class RunClass {
public static void main(String[] args) {
System.out.println("app is running!");
}
}
после выполнения 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
3 ответа:
использовать
JavaExec. В качестве примера поставьте следующее вbuild.gradletask execute(type:JavaExec) { main = mainClass classpath = sourceSets.main.runtimeClasspath }для выполнения
gradle -PmainClass=Boo execute. Вы получите$ gradle -PmainClass=Boo execute :compileJava :compileGroovy UP-TO-DATE :processResources UP-TO-DATE :classes :execute I am BOO!
mainClass- это свойство, передаваемое динамически в командной строке.classpathустановлен для пикапа последних классов.если вы не проходите в
mainClassсвойство, это не удается, как ожидалось.$ 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'.обновлено из комментариев:
нет
mvn exec:javaэквивалент в Gradle, вам нужно либо применить плагин приложения или есть задача JavaExec.
вам просто нужно использовать Gradle в плагин:
apply plugin:'application' mainClassName = "org.gradle.sample.Main"и просто
gradle run.как указывает Тереза, вы также можете настроить
mainClassNameкак системное свойство и запустить с аргументом командной строки.
расширяясь на первый нулевой ответ, я думаю, вы хотите что-то, где вы также можете запустить
gradle buildбез ошибок.и
gradle buildиgradle -PmainClass=foo runAppработать с этим:task runApp(type:JavaExec) { classpath = sourceSets.main.runtimeClasspath main = project.hasProperty("mainClass") ? project.getProperty("mainClass") : "package.MyDefaultMain" }где вы устанавливаете свой основной класс по умолчанию.