Gradleを実行するための シンプルなEclipseプラグイン があり、コマンドラインでgradleを起動するだけです。
Mavenのコンパイルと実行のためのgradle analogとは何ですかmvn compile exec:Java -Dexec.mainClass=example.Example
これにより、gradle.build
を含むプロジェクトを実行できます。
更新:同様の質問がありました Javaアプリを実行するためのmavenのexecプラグインに相当するgradleは何ですか? 前に尋ねましたが、ソリューションはすべてのプロジェクトを変更することを提案しました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
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'.
コメントから更新:
Gradleにはmvn exec:Java
に相当するものはありません。アプリケーションプラグインを適用するか、JavaExecタスクが必要です。
Gradle Applicationプラグイン を使用するだけです。
apply plugin:'application'
mainClassName = "org.gradle.sample.Main"
そして、単にgradle run
。
Teresaが指摘しているように、mainClassName
をシステムプロパティとして構成し、コマンドライン引数で実行することもできます。
First Zeroの答えを拡張すると、エラーなしで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"
}
デフォルトのメインクラスを設定します。