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?

Gremash
la source
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

SuperAndrew
la source
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é
Michal Kordas
la source
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.

Guildenstern70
la source
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 .

Raniz
la source
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.

Yar
la source
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.

hippoLogic
la source
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'
Gayan Weerakutti
la source