Come creare un progetto Java gradle


120

Come creare un progetto Java Gradle dalla riga di comando?

Dovrebbe creare un layout di cartella Maven standard come nell'immagine qui sotto.

Java Gradle creato con il plugin Eclipse

AGGIORNARE:

.1. Da http://www.gradle.org/docs/current/userguide/tutorial_java_projects.html devo creare un file build.gradlecon 2 righe

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

.2. Aggiungi build.gradleall'attività di seguito, quindi eseguigradle create-dirs

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

.3. Allora corrigradle eclipse (o la stringa corrispondente ad un altro plugin IDE configurato)

Quindi c'è un modo per farlo in un comando?


1
Qualcuno sa l'equivalente per lo scheletro del progetto Java IntelliJ?
Beezer

Penso che la risposta sia lampante sopra ...._ o la stringa corrispondente ad un altro plugin IDE configurato_: =)
Beezer

Risposte:


283

Per creare un progetto Java: crea una nuova directory del progetto, saltaci dentro ed esegui

gradle init --type java-library

Verranno create le cartelle di origine e un file di build Gradle (incluso un wrapper).


8
Come accennato in altre risposte, la documentazione sul plugin build init può essere trovata qui: gradle.org/docs/current/userguide/build_init_plugin.html
Paul

è molto buono. @Mike In eclipse, prima di farlo, il progetto java deve essere convertito nel progetto gradle. Allora, come posso impostare automaticamente le cartelle di origine?
verystrongjoe

Una cosa importante. Devi avere la versione Gradle con il plugin init incluso. Mi ci è voluto molto tempo per capire cosa c'è che non va nella mia laurea.
Юрій Мазуревич

6
Usamkdir -p src/{main,test}/{java,resources}
Ortwin Angermeier

1
gradle wrapper --gradle-version 4.1 init --type java-librarySe vuoi specificare la versione wrapper
deFreitas

19

I ragazzi gradle stanno facendo del loro meglio per risolvere tutti i nostri problemi ;-). Recentemente (dalla 1.9) hanno aggiunto una nuova funzionalità (incubazione): il plugin "build init".

Vedi: build init plugin documentazione


13

Sfortunatamente non puoi farlo con un comando. C'è un problema aperto per la caratteristica stessa .

Attualmente dovrai farlo a mano. Se devi farlo spesso, puoi creare un plug-in gradle personalizzato o semplicemente preparare lo scheletro del tuo progetto e copiarlo quando necessario.

MODIFICARE

Il problema JIRA sopra menzionato è stato risolto, a partire dal 1 maggio 2013, e risolto in 1.7-rc-1. La documentazione sul plug-in Build Init è disponibile, sebbene indichi che questa funzionalità è ancora nel ciclo di vita di "incubazione".


12

Infine, dopo aver confrontato tutte le soluzioni, penso che partire da build.gradlefile possa essere conveniente.

La distribuzione Gradle ha una samplescartella con molti esempi, e c'è un gradle init --type basiccomando, vedere il Capitolo 47. Build Init Plugin . Ma hanno tutti bisogno di qualche modifica.

Puoi anche utilizzare il modello di seguito, quindi eseguiregradle 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"
}

Il risultato è come di seguito.

panoramica

Può essere utilizzato senza alcun plug-in Gradle per Eclipse
o con (Enide) Gradle for Eclipse, Jetty, alternativa Android a Gradle Integration for Eclipse

editbox


1

Se stai usando Eclipse, per un progetto esistente (che ha un build.gradlefile) puoi semplicemente digitare gradle eclipseche creerà tutti i file e le cartelle Eclipse per questo progetto.

Si prende cura di tutte le dipendenze per te e le aggiunge anche al percorso delle risorse del progetto in Eclipse.


2
Questo non crea cartelle di origine. Se non sono stati creati prima, le configurazioni di Eclipse non saranno piene. Tuttavia, grazie mille, aggiunto come passaggio .3
Paul Verest

1

Potrei gestirlo utilizzando un metodo groovy build.gradleper creare tutte le cartelle di origine per java, risorse e test. Quindi l'ho impostato per essere eseguito prima gradle eclipsedell'attività.

eclipseClasspath.doFirst {
    initSourceFolders()
}

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

Ora possiamo impostare un nuovo progetto Java EE gradle da eclissare con un solo comando. Ho messo questo esempio su GitHub


-2

Ho appena provato con Eclipse Neon.1 e 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

inserisci qui la descrizione dell'immagine

Su Windows 10 con versione 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)

Ed è fallito miseramente come puoi vedere in Eclipse. Ma ho navigato come un'aquila in volo in Intellij ... Non conosco Intellij, e un grande fan di eclipse, ma ragazzi comuni, questo significa che NESSUNO prova Neon.1 per i casi d'uso più semplici ... per importare un progetto gradle. Non è abbastanza buono. Passo a Intellij per progetti gradle:

inserisci qui la descrizione dell'immagine


1
La domanda è stata: come creare un progetto Java Gradle dalla riga di comando?
Paul Verest

Qual è il problema con l'essere d'aiuto in questo contesto Paul? È nello stesso contesto. Quindi, perché non mostrare che eclipse attualmente ha un problema con l'importazione.
Beezer
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.