Meilleur moyen d'ajouter la prise en charge de Gradle à IntelliJ Project


168

J'ai beaucoup cherché et je n'ai pas trouvé la meilleure solution pour convertir un projet IntelliJ existant en Gradle. Je travaille dans un environnement d'équipe et nous partageons actuellement le fichier .ipr car nous avons quelques configurations de construction que nous suivons. Nous finirons par nous débarrasser de ceux en faveur de Gradle, mais je ne peux pas trop gâcher les choses tant que la conversion de Gradle n'est pas terminée.

De plus, nos fichiers source Java sont situés à la racine du répertoire src au lieu de src / main / java comme c'est le cas en standard.

Existe-t-il un moyen d'ajouter Gradle à mon projet qui ne me fera pas supprimer et recréer mon projet IntelliJ et qui ne gâchera pas tout le monde quand ils font un pull Git?


2
Pour répondre à la question de votre répertoire source, vous devez remplacer le répertoire source par défaut par sourceSets . Voyez comment nous avons fait cela dans le pilote Java MongoDB: github.com/mongodb/mongo-java-driver/blob/…
Trisha

Réponses:


208

Ajouter:

build.gradle 

dans votre dossier de projet racine, et utilisez le plugin par exemple:

apply plugin: 'idea'
//and standard one
apply plugin: 'java'

et avec ce feu depuis la ligne de commande:

gradle cleanIdea 

et après ça:

gradle idea

Après cela, tout devrait fonctionner


7
Lors de la tentative de cette solution, quelqu'un a-t-il rencontré l'erreur "Le module 'xx' n'est pas soutenu par gradle? Si oui, comment a-t-il été résolu
Marquis Blount

Merci, cela me rendait fou et je ne savais pas comment faire en sorte qu'IntelliJ actualise les dépendances des projets après l'avoir ajouté à build.gradle.
Amala

Gradle idea (qui dépend de ideaProject, ideaModule, ideaWorkspace) n'a pas fonctionné pour moi car ideaModule a continué à échouer. Au lieu de cela, la tâche gradle ideaProject a bien fonctionné et le projet est maintenant activé pour Gradle.
paranza

D'accord, il y a un problème avec cette approche. Vous obtiendrez une erreur "les dépendances ne peuvent pas être appliquées à groovy.lang.closure". Découvrez plutôt cette solution: stackoverflow.com/a/17168175/2517730
Yar

1
C'est quelque peu dépassé, puisque le plugin Gradle d'idée recourt toujours au projet d'idée basé sur des fichiers, tandis que le projet basé sur des dossiers est standard et beaucoup plus pratique
Xerus

74

Il n'est pas nécessaire de supprimer des .imlfichiers. Suivez ceci:

  • fermer le projet
  • File -> Open... et choisissez votre nouvellement créé build.gradle
  • IntelliJ vous demandera si vous voulez:
    • Open Existing Project
    • Delete Existing Project and Import
  • Choisissez la deuxième option et vous avez terminé

Comment puis-je résoudre le problème, que le nouveau projet doit être dans un autre dossier?
barracuda317

Cela ajoute-t-il les fichiers JAR de votre structure de projet | Bibliothèques en tant que dépendances et créer un EAR (à l'aide du plugin) comme défini dans Structure du projet | Artefacts?
NOTiFY

@NOTiFY J'en doute. Cela équivaut à extraire un projet à partir de zéro.
Michal Kordas

@Michal Kordas J'ai ajouté toutes les dépendances à la main, je n'ai pas pris le temps que je m'attendais et j'ajoute maintenant la création WAR, JAR & EAR. Il y a une demande de fonctionnalité pour cela sur JetBrains youtrack.jetbrains.com/issue/IDEABKL-6990
NOTiFY

46

Une autre façon, plus simple.

Ajoutez votre

build.gradle

fichier à la racine de votre projet. Fermez le projet. Supprimez manuellement le fichier * .iml. Ensuite, choisissez "Importer un projet ...", accédez au répertoire de votre projet, sélectionnez le fichier build.gradle et cliquez sur OK.


21

Dans IntelliJ 2017.2.4, je viens de fermer le projet et de le rouvrir et j'ai eu une boîte de dialogue me demandant si je voulais créer un lien avec build.gradle qui a ouvert la boîte de dialogue d'importation pour les projets Gradle.

Pas besoin de supprimer des fichiers ou d'ajouter le plugin d' idée à build.gradle .


2
Peut confirmer que cela fonctionne bien. Exécutez simplement gradle init à la racine du projet, vous obtiendrez la boîte de dialogue la prochaine fois que vous ouvrirez le projet.
Alex H.27

16

Juste comme référence future, si vous avez déjà un Mavenprojet, tout ce que vous avez à faire est de faire un gradle initdans le répertoire de votre projet qui générera build.gradleet d'autres dépendances, puis faites un gradle builddans le même répertoire.


2
D'intérêt: Création de nouvelles versions Gradle - Notes: gradle initpeut générer différents types de projets, et sait même comment traduire des pom.xmlfichiers simples en Gradle.
Guy Coder

7

J'utilise la version 12 d'IntelliJ.

J'ai résolu un problème similaire en créant un projet entièrement nouveau et en "Checking out from Version Control". La fusion des deux projets plus tard a été assez facile.


1
  1. Ajoutez build.gradledans le répertoire racine de votre projet.

  2. Alors juste File->Invalidate Caches / Restart

Voici un build.gradle de base pour les projets Java:

plugins {
    id 'java'
}

sourceCompatibility = '1.8'
targetCompatibility = '1.8'
version = '1.2.1'
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.