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.gradle
task 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" }
где вы устанавливаете свой основной класс по умолчанию.