Cara membuat proyek gradle Java

120

Bagaimana cara membuat proyek Java Gradle dari command line?

Ini harus membuat layout folder maven standar seperti pada gambar di bawah ini.

Java Gradle dibuat dengan plugin Eclipse

MEMPERBARUI:

.1. Dari http://www.gradle.org/docs/current/userguide/tutorial_java_projects.html saya perlu membuat file build.gradledengan 2 baris

apply plugin: 'java'
apply plugin: 'eclipse'

.2. Tambahkan ke build.gradletugas di bawah, lalu jalankangradle create-dirs

task "create-dirs" << {
   sourceSets*.java.srcDirs*.each { it.mkdirs() }
   sourceSets*.resources.srcDirs*.each { it.mkdirs() }
}

.3. Kemudian jalankan gradle eclipse(atau string yang sesuai dengan plugin IDE lain yang dikonfigurasi)

Jadi apakah ada cara untuk melakukannya dalam satu perintah?

Paul Verest
sumber
1
Adakah yang tahu padanan untuk kerangka proyek java IntelliJ?
Beezer
Saya pikir jawabannya sangat mencolok di atas ...._ atau string yang sesuai dengan plugin IDE lain dikonfigurasi_: =)
Beezer

Jawaban:

283

Untuk membuat proyek Java: buat direktori proyek baru, lompat ke dalamnya dan jalankan

gradle init --type java-library

Folder sumber dan file build Gradle (termasuk pembungkus) akan dibuat.

Mike
sumber
8
Seperti yang disebutkan dalam jawaban lain, dokumentasi tentang plugin build init dapat ditemukan di sini: gradle.org/docs/current/userguide/build_init_plugin.html
Paul
ini sangat bagus. @Mike In eclipse, sebelum melakukan ini, proyek java harus dikonversi ke proyek gradle. Lalu, bagaimana cara mengatur folder sumber secara otomatis?
verystrongjoe
Satu hal penting. Anda harus memiliki versi Gradle dengan plugin init yang disertakan. Butuh banyak waktu untuk mencari tahu apa yang salah dengan gradle saya.
Юрій Мазуревич
6
Gunakanmkdir -p src/{main,test}/{java,resources}
Ortwin Angermeier
1
gradle wrapper --gradle-version 4.1 init --type java-libraryJika Anda ingin menentukan versi pembungkus
deFreitas
19

Para gradle sedang melakukan yang terbaik untuk menyelesaikan semua (y) masalah kita ;-). Mereka baru-baru ini (sejak 1.9) menambahkan fitur baru (inkubasi): plugin "build init".

Lihat: membuat dokumentasi plugin init

kamar
sumber
13

Sayangnya Anda tidak dapat melakukannya dalam satu perintah. Ada masalah terbuka untuk fitur tersebut .

Saat ini Anda harus melakukannya dengan tangan. Jika Anda perlu sering melakukannya, Anda dapat membuat plugin gradle khusus , atau cukup siapkan kerangka proyek Anda sendiri dan salin saat diperlukan.

EDIT

Masalah JIRA tersebut di atas telah diselesaikan, terhitung sejak 1 Mei 2013, dan diperbaiki di 1.7-rc-1. Dokumentasi tentang Plugin Build Init tersedia, meskipun menunjukkan bahwa fitur ini masih dalam siklus hidup "inkubasi".

rodion
sumber
12

Akhirnya setelah membandingkan semua solusi, saya pikir memulai dari build.gradlefile bisa lebih mudah.

Distribusi Gradle memiliki samplesfolder dengan banyak contoh, dan ada gradle init --type basicperintah lihat Bab 47. Build Init Plugin . Tapi mereka semua butuh pengeditan.

Anda juga dapat menggunakan template di bawah ini, lalu jalankangradle initSourceFolders eclipse

/*
* Nodeclipse/Enide build.gradle template for basic Java project
*   https://github.com/Nodeclipse/nodeclipse-1/blob/master/org.nodeclipse.enide.editors.gradle/docs/java/basic/build.gradle
* Initially asked on
*   http://stackoverflow.com/questions/14017364/how-to-create-java-gradle-project
* Usage
*   1. create folder (or general Eclipse project) and put this file inside
*   2. run `gradle initSourceFolders eclipse` or `gradle initSourceFolders idea`
* @author Paul Verest; 
* based on `gradle init --type basic`, that does not create source folders 
*/

apply plugin: 'java'
apply plugin: 'eclipse'
apply plugin: 'idea'

task initSourceFolders { // add << before { to prevent executing during configuration phase
   sourceSets*.java.srcDirs*.each { it.mkdirs() }
   sourceSets*.resources.srcDirs*.each { it.mkdirs() }
}

task wrapper(type: Wrapper) {
    gradleVersion = '1.11'
}

// In this section you declare where to find the dependencies of your project
repositories {
    // Use Maven Central for resolving your dependencies.
    // You can declare any Maven/Ivy/file repository here.
    mavenCentral()
}

// In this section you declare the dependencies for your production and test code
dependencies {
    //compile fileTree(dir: 'libs', include: '*.jar')
    // The production code uses the SLF4J logging API at compile time
    //compile 'org.slf4j:slf4j-api:1.7.5'

    // Declare the dependency for your favourite test framework you want to use in your tests.
    // TestNG is also supported by the Gradle Test task. Just change the
    // testCompile dependency to testCompile 'org.testng:testng:6.8.1' and add
    // 'test.useTestNG()' to your build script.
    testCompile "junit:junit:4.11"
}

Hasilnya seperti di bawah ini.

gambaran

Itu bisa digunakan tanpa plugin Gradle untuk Eclipse,
atau dengan (Enide) Gradle untuk Eclipse, Jetty, alternatif Android untuk Gradle Integration for Eclipse

kotak edit

Paul Verest
sumber
1

Jika Anda menggunakan Eclipse, untuk proyek yang ada (yang memiliki build.gradlefile) Anda cukup mengetik gradle eclipseyang akan membuat semua file dan folder Eclipse untuk proyek ini.

Ini menangani semua dependensi untuk Anda dan menambahkannya ke jalur sumber daya proyek di Eclipse juga.

Pelpotronic
sumber
2
Ini tidak membuat folder sumber. Jika tidak dibuat sebelumnya, konfigurasi Eclipse tidak akan penuh. Namun demikian, terima kasih banyak, ditambahkan sebagai langkah .3
Paul Verest
1

Saya bisa mengatasinya dengan menggunakan metode groovy build.gradleuntuk membuat semua folder sumber untuk java, resource dan test. Lalu saya mengaturnya untuk dijalankan sebelum gradle eclipsetugas.

eclipseClasspath.doFirst {
    initSourceFolders()
}

def initSourceFolders() {
    sourceSets*.java.srcDirs*.each { it.mkdirs() }
    sourceSets*.resources.srcDirs*.each { it.mkdirs() }
}

Sekarang kita dapat mengatur proyek Java EE gradle baru ke gerhana hanya dengan satu perintah. Saya meletakkan contoh ini di GitHub

Edy Segura
sumber
-2

Saya baru saja mencoba dengan Eclipse Neon.1 dan Gradle:

------------------------------------------------------------
Gradle 3.2.1
------------------------------------------------------------

Build time:   2016-11-22 15:19:54 UTC
Revision:     83b485b914fd4f335ad0e66af9d14aad458d2cc5

Groovy:       2.4.7
Ant:          Apache Ant(TM) version 1.9.6 compiled on June 29 2015
JVM:          1.8.0_112 (Oracle Corporation 25.112-b15)
OS:           Windows 10 10.0 amd64

masukkan deskripsi gambar di sini

Di windows 10 dengan Versi Java:

C:\FDriveKambiz\repo\gradle-gen-project>java -version
java version "1.8.0_112"
Java(TM) SE Runtime Environment (build 1.8.0_112-b15)
Java HotSpot(TM) 64-Bit Server VM (build 25.112-b15, mixed mode)

Dan itu gagal total seperti yang Anda lihat di Eclipse. Tapi berlayar seperti elang yang melonjak di Intellij ... Saya tidak tahu Intellij, dan penggemar berat gerhana, tapi teman-teman biasa, ini berarti TIDAK ADA SATU teste Neon.1 untuk kasus penggunaan yang paling sederhana ... untuk mengimpor proyek gradle. Itu tidak cukup. Saya beralih ke Intellij untuk proyek gradle:

masukkan deskripsi gambar di sini

Beezer
sumber
1
Pertanyaannya adalah: Bagaimana cara membuat proyek Java Gradle dari baris perintah?
Paul Verest
Apa masalah menjadi membantu dalam konteks ini Paulus? Itu ada dalam konteks yang sama. Jadi, mengapa tidak menunjukkan bahwa gerhana saat ini bermasalah dengan impornya.
Beezer