web-dev-qa-db-fra.com

Comment créer un projet Java gradle

Comment créer un projet Java Gradle en ligne de commande?

Il devrait créer disposition standard des dossiers maven comme sur l’image ci-dessous.

Java Gradle created with Eclipse plugin

MISE À JOUR:

.1. De http://www.gradle.org/docs/current/userguide/tutorial_Java_projects.html J'ai besoin de créer le fichier build.gradle avec 2 lignes.

apply plugin: 'Java'
apply plugin: 'Eclipse'

.2. Ajoutez à la tâche build.gradle ci-dessous, puis exécutez gradle create-dirs

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

.3. Puis exécutez gradle Eclipse (ou la chaîne correspondante vers un autre plug-in IDE configuré).

Alors, y a-t-il moyen de le faire en une seule commande?

112
Paul Verest

Pour créer un projet Java: créez un nouveau répertoire de projet, accédez au répertoire et exécutez-le.

gradle init --type Java-library

Les dossiers sources et un fichier de génération Gradle (y compris un wrapper) seront générés.

272
Mike

Les gradés font de leur mieux pour résoudre tous nos problèmes ;-). Ils ont récemment (depuis la version 1.9) ajouté une nouvelle fonctionnalité (mise en incubation): le plugin "build init".

Voir: documentation du plugin build init

18
roomsg

Enfin, après avoir comparé toutes les solutions, je pense qu’à partir du fichier build.gradle peut être pratique.

La distribution de Gradle a le dossier samples avec beaucoup d'exemples, et il y a le gradle init --type basic, voir Chapitre 47. Plugin Build Init . Mais ils ont tous besoin d'être édités.

Vous pouvez également utiliser modèle ci-dessous, puis exécutez gradle 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"
}

Le résultat est comme ci-dessous.

overview

Cela peut être utilisé sans aucun plugin Gradle pour Eclipse,
ou avec (Enide) Gradle pour Eclipse, Jetty, Android alternative à Gradle Integration for Eclipse

editbox

12
Paul Verest

Malheureusement, vous ne pouvez pas le faire en une seule commande. Il y a un open problème pour la fonctionnalité même .

Actuellement, vous devrez le faire à la main. Si vous avez besoin de le faire souvent, vous pouvez créer un plugin Gradle personnalisé , ou simplement préparer votre propre squelette de projet et le copier si nécessaire.

EDIT

Le problème JIRA mentionné ci-dessus a été résolu, à compter du 1er mai 2013, et résolu en 1.7-rc-1. La documentation sur le Build Init Plugin est disponible, bien qu'elle indique que cette fonctionnalité est toujours dans le cycle de vie "en incubation".

12
rodion

Si vous utilisez Eclipse, pour un projet existant (qui contient un fichier build.gradle), vous pouvez simplement taper gradle Eclipse, ce qui créera tous les fichiers et dossiers Eclipse pour ce projet.

Il gère pour vous toutes les dépendances et les ajoute également au chemin de ressources du projet dans Eclipse.

1
Pelpotronic

Je pouvais le gérer en utilisant une méthode groovy dans build.gradle pour créer tous les dossiers source de Java, des ressources et des tests. Ensuite, je le configure pour qu'il s'exécute avant la tâche gradle Eclipse.

eclipseClasspath.doFirst {
    initSourceFolders()
}

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

Nous pouvons maintenant configurer un nouveau projet Java EE dans Eclipse avec une seule commande. Je mets cet exemple à GitHub

1
Edy Segura