There is simple Eclipse plugin to run Gradle, that just uses command line way to launch gradle.
What is gradle analog for maven compile and run mvn compile exec:java -Dexec.mainClass=example.Example
This way any project with gradle.build
could be run.
UPDATE: There was similar question What is the gradle equivalent of maven's exec plugin for running Java apps? asked before, but solution suggested altering every project 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
mvn exec:java
Gradleには直接相当するものがないので、application
プラグインを適用するか、タスクを用意する必要がありますJavaExec
。
application
プラグイン
プラグインを有効にします:
plugins {
id 'application'
...
}
次のように設定します。
application {
mainClassName = project.hasProperty("mainClass") ? project.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'.