Существует простой плагин Eclipse для запуска Gradle, который просто использует способ командной строки для запуска gradle.
Что такое gradle аналог для компиляции и запуска maven
mvn compile exec:java -Dexec.mainClass=example.Example
Таким образом может быть запущен любой проект с gradle.build
.
UPDATE: был аналогичный вопрос Что такое gradle эквивалент плагина exec maven для запуска 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
Ответ 1
В Gradle нет прямого эквивалента mvn exec:java
, вам нужно либо применить плагин application
, либо выполнить задание JavaExec
.
application
плагин
Активируйте плагин:
plugins {
id 'application'
...
}
Настройте его следующим образом:
application {
mainClassName = project.hasProperty("mainClass") ? getProperty("mainClass") : "NULL"
}
В командной строке напишите
$ gradle -PmainClass=Boo run
JavaExec
задача
Определите задачу, скажем, execute
:
task execute(type:JavaExec) {
main = project.hasProperty("mainClass") ? getProperty("mainClass") : "NULL"
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'.
Ответ 2
Вам просто нужно использовать Gradle Плагин приложений:
apply plugin:'application'
mainClassName = "org.gradle.sample.Main"
А затем просто gradle run
.
Как указывает Тереза, вы также можете настроить mainClassName
как системное свойство и запустить с аргументом командной строки.
Ответ 3
Развернув ответ "Первый нуль", я думаю, вам нужно что-то, где вы также можете запустить 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"
}
где вы устанавливаете основной класс по умолчанию.