web-dev-qa-db-fra.com

Comment actualiser les dépendances de projets à l'aide de Buildship dans Eclipse?

Eclipse Mars est récemment sorti et j'ai eu envie de l'essayer. Une intégration plus étroite avec Gradle figurait parmi ses fonctionnalités via Buildship .

Avec Luna, j’utilisais Gradle Integration for Eclipse (4.4) et j’ai trouvé cela beaucoup plus facile à utiliser pour ce que j’essayais de faire; Je pouvais ajouter une "nature" Gradle à un projet existant sans avoir à supprimer le projet et à le réimporter comme je l'ai fait avec Buildship. Toutes les dépendances que j'ai déclarées dans build.gradle sont automatiquement placées dans le chemin de classe du projet.

Avec Buildship, je ne voyais aucune option permettant de configurer un projet existant en tant que projet Gradle et je ne parvenais pas à le faire inclure les dépendances spécifiées dans le script de construction dans le chemin de classe du projet.

J'ai essayé d'installer le plug-in d'origine (GIfE 4.4) pour Eclipse Mars et, après avoir redémarré Eclipse, tout cela a été refait automatiquement pour moi. Ce que je me demande, c'est s'il y a un moyen de faire cela tout au long de Buildship car, pour le moment, même si tout fonctionne, c'est une configuration assez amusante. Le menu déroulant de mon projet ressemble à ceci:

En plus de paraître un peu bizarre, il s’agit d’une configuration plutôt agréable, car elle combine la gestion automatique des dépendances de GIfE avec la possibilité d’exécuter des tâches Gradle directement à partir d’Eclipse fourni par Buildship.

29
Tagc

La mise à jour des dépendances identifiées par Eclipse devrait alors être aussi simple que:

right click on project -> gradle -> refresh all

Mise à jour dans la version 1.0.16

Actuellement, vous devez parcourir le cercle suppression-importation la première fois que vous utilisez un projet de génération existant avec buildship. Vous pouvez maintenant utiliser l'option Ajouter Nature de Gradle:

 right click on project -> configure -> Add Gradle Nature

«Actualiser le projet Gradle» apparaît également lorsque vous cliquez avec le bouton droit de la souris sur un fichier .gradle, ainsi que dans le menu contextuel de l'éditeur Gradle. la source

Voir mise à jour ci-dessous Cependant, vous constaterez parfois que, lors de l’importation de votre projet, le nouveau chemin de classes Project et External Dependencies n’a pas été obtenu. entrée que vous devriez normalement pouvoir voir dans votre Project Properties -> Java Build Path -> Libraries Si c'est effectivement le cas, ajoutez ce qui suit dans le fichier .classpath de votre projet et toute la qualité du dégradé devrait commencer à fonctionner:

<classpathentry exported="true" kind="con" path="org.Eclipse.buildship.core.gradleclasspathcontainer"/>

Mise à jour dans la version 1.0.16 

Le conteneur Gradpath classpath est restauré s'il manque

Lors de la conversion d'un projet Java Eclipse existant en Gradle, le conteneur Classpath de Gradle était manquant. Il est maintenant toujours ajouté lorsqu'un projet est un projet Java.

52
Paul Adamson

Incase pour quiconque, si vous ne recevez pas le 

clic droit sur le projet -> grade

lien après avoir suivi les étapes mentionnées dans la réponse de @PaulAdamson. Essaye ça.

  1. Dans votre build.gradle, ajoutez apply plugin 'Eclipse';
  2. Fermez le projet en eclispe. 
  3. Exécutez la version gradle à partir de la ligne de commande, puis rouvrez le projet dans Eclipse.

    Maintenant, le lien Gradle devrait être disponible sur un clic droit.

4
Chandru

Je conviens que Buildship est un peu un désastre. La documentation est extrêmement rare, avec des exemples limités et un guide de l'utilisateur minimal. On pourrait penser que documenter la transition de Gradle Integration pour Eclipse (4.4) serait une évidence, mais je suppose que non. Je n'ai pas non plus le moindre indice sur l'utilisation de Buildship, à part le fait que j'ai exécuté certaines tâches manuellement et que cela a mis des chemins pleinement qualifiés dans mon fichier .classpath. C'est ridicule étant donné que de nombreux projets sont partagés via des systèmes de contrôle des changements.

4
robross0606

Actuellement, aucun projet "Convert to Gradle" n'est implémenté dans Buildship. Toutefois, si vous supprimez le projet et le réimportez à l'aide de l'assistant d'importation Gradle, vous devriez voir le même projet avec la nature et le conteneur de classpath appropriés. 

De plus, si vous avez un projet Gradle dans votre espace de travail et mettez à jour les dépendances dans le script de construction, vous pouvez actualiser le conteneur de classpath en cliquant avec le bouton droit sur le projet et en sélectionnant Gradle > Refresh projects

Un problème similaire auquel vous avez été confronté a été abordé dans les forums Gradle: discussion.gradle.org/t/adding-dependencies-to-projects/10415.

Nous avons également un bogue dédié à cette demande de fonctionnalité: bugs.Eclipse.org/bugs/show_bug.cgi?id=465355. S'il vous plaît voter pour et partager vos pensées là aussi.

En ce qui concerne la documentation: il est vrai que nous n’avons pas fourni de documentation officielle pour le système d’aide central Eclipse, mais certaines ressources expliquent les fonctionnalités actuelles:

2
Donát Csikós

Si vous avez déjà converti un projet Java en projet Gradle mais que vous avez sélectionné [Clic droit] + Importer (puis en important le «Projet existant de Gradle»), votre projet doit être de nature Gradle.

Si le projet est de nature Gradle, alors dans le fichier .classpath, vous ne verrez pas toutes les dépendances .jar comme dans le projet Java normal. À la place, vous verrez une seule entrée de:

<classpathentry kind="con" path="org.Eclipse.buildship.core.gradleclasspathcontainer"/>

Pour actualiser les dépendances, procédez comme suit:

[CLIC DROIT] + Gradle + Refresh Gradle Project

Cela résoudra tous les problèmes de complication.

0
user204069