Ada plugin Eclipse sederhana untuk menjalankan Gradle, yang hanya menggunakan cara baris perintah untuk meluncurkan gradle.
Apa analog gradle untuk kompilasi dan jalankan Maven
mvn compile exec:java -Dexec.mainClass=example.Example
Dengan cara ini, proyek apa pun dengan gradle.build
dapat dijalankan.
PEMBARUAN: Ada pertanyaan serupa Apa yang setara dengan gradle dari plugin exec maven untuk menjalankan aplikasi Java? ditanyakan sebelumnya, tetapi solusi menyarankan untuk mengubah setiap proyekbuild.gradle
package runclass;
public class RunClass {
public static void main(String[] args) {
System.out.println("app is running!");
}
}
Kemudian mengeksekusi 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
Jawaban:
Tidak ada padanan langsung
mvn exec:java
dalam gradle, Anda harus menerapkanapplication
plugin atau memilikiJavaExec
tugas.application
pluginAktifkan plugin:
Konfigurasikan sebagai berikut:
Di baris perintah, tulis
JavaExec
tugasTentukan tugas, katakanlah
execute
:Untuk menjalankan, tulis
gradle -PmainClass=Boo execute
. Anda mendapatkanmainClass
adalah properti yang diteruskan secara dinamis pada baris perintah.classpath
disetel untuk mengambil kelas terbaru.Jika Anda tidak meneruskan
mainClass
properti, kedua pendekatan gagal seperti yang diharapkan.sumber
build.gradle
, yang diclasspath
-hardcode untuk mengambil kelas java dari classpath sumberbuild.gradle
java Anda . Bahkan saat Anda menjalankanmvn exec:java
classpath diatur untuk mengambil file sumber java di direktori maven saat ini. DalamJavaExec
tugas tersebut, saya telah melakukan hal yang sama. Ubahclasspath
untuk sumber java Anda dan jalur kelas akan berubah secara otomatis. Tidak ada - hal yangmvn exec:java
setara jikagradle
Anda perlu menerapkanapplication
plugin atau memilikiJavaExec
tugas.task execute(...
ke build.gradle, setiap tugas lain gagal dengan pesan kesalahan yang sama yang mengatakan bahwa gradle mengharapkan mainClass diteruskan. Saya tidak bisa membersihkan atau membangun.main = mainClass
denganmain = getProperty("mainClass")
dan itu tidak akan lagi meneriaki Anda.gradle build
, lihat jawaban saya di bawah ini.Anda hanya perlu menggunakan plugin Aplikasi Gradle :
Dan kemudian sederhana
gradle run
.Seperti yang ditunjukkan Teresa, Anda juga dapat mengonfigurasi
mainClassName
sebagai properti sistem dan menjalankan dengan argumen baris perintah.sumber
build.graldle
. Tetapi saya memiliki proyek dengan banyak kelas util, yang masing-masing memiliki metode utama.System.getProperty("mainClass")
, 3) kode sumber adalah tempat yang seharusnya sesuai dengan konvensi, 4) semuanya berfungsi ketika Anda memasukkanRunClass
file build?build.gradle
adamainClassName = "runclass.RunClass"
. Parameter-DmainClass
tidak berpengaruh:gradle run -DmainClass=runclass.RunClass2
menjalankan kelas utama yang di-hardcode.ext.mainClass = project.hasProperty('mainClass') ? project.getProperty('mainClass') : 'org.gradle.sample.Main' ; apply plugin:'application' ; mainClassName = ext.mainClass
Sekarang ketika Anda melakukannyagradle -PmainClass=Foo run
harus digunakanFoo
sebagai kelas utama.Memperluas jawaban First Zero, saya kira Anda menginginkan sesuatu di mana Anda juga dapat berjalan
gradle build
tanpa kesalahan.Baik
gradle build
dangradle -PmainClass=foo runApp
bekerja dengan ini:tempat Anda menyetel kelas utama default.
sumber
plugins { application }; application { mainClassName = if (project.hasProperty("mainClass")) project.properties.get("mainClass").toString() else "Foo" }
Scanner
untuk membacanextLine()
. Adakah pemikiran untuk memperbaikinya? Terus dapatkan "tidak ada baris yang ditemukan" saat menjalankan menggunakan runApp.Anda dapat membuat parameter dan meneruskan gradle clean build -Pprokey = goodbye
sumber