Eclipse: attache source / javadoc à une bibliothèque via une propriété locale

j'ai une bibliothèque tierce dans mon dépôt SVN et j'aimerais associer source/javadoc avec elle localement dans Eclipse. C'est-à-dire: il devrait y avoir un paramètre local (par exemple, une entrée dans le fichier local.properties ) qui associe la source/javadoc au fichier JAR, mais qui n'introduit pas de dépendances locales dans le dépôt via .classpath . Idéalement j'aurais

lib_src_dir = /my/path/to/lib/src

dans local.properties puis

<classpathentry kind="lib" path="lib.jar" sourcepath="${lib_src_dir}">

in .classpath . Cela peut-il être fait?

[EDIT] la réponse de @VonC est utile... Y a-t-il un moyen de charger des Variables de chemin à partir d'un fichier texte (par exemple local.properties ) au lieu de passer par la fenêtre - > Préférences - > Général - > espace de travail - > Ressources liées?

9
demandé sur Chris Conway 2008-11-19 01:12:28

3 réponses

je crois que ce serait mieux assurée par:

  • la création d'un dossier lié combiné avec
  • la déclaration d'une ressource liée

la ressource liée définit une variable de chemin qui serait égale à /my/path/to/lib/src

Eclipse Linked Resources

le dossier lié se réfère à votre ressource liée

Linked Resources

(vous pouvez utiliser une variable et non un chemin fixe, avec le bouton" Variable")

la variable est en fait toujours locale (à l'espace de travail), et sera modifiée à travers l'écran de préférence Linked Resources .

le dossier lié peut aussi être... un fichier 1519380920", permettant ainsi la référence d'une archive à travers un chemin relatif (par rapport au variable.)

Ensuite, ce fichier lié (ici une archive liée) peut être associé à votre classpathentry dans l'attribut source ".


le problème avec les ressources liées est qu'elles sont locales à l'espace de travail, dans les préférences.

Vous pouvez exporter les préférences dans un [myPrefs.epf] fichier , puis couper le fichier exporté afin de ne laisser que les lignes contenant pathvariable :

/instance/org.eclipse.core.resources/pathvariable.MY_DIRECTORY=/my/path/to/lib/src

N'importe qui peut alors importer ce fichier de préférences spéciales, qui n'affectera que la partie Linked Resources ".

cette solution n'est pas très satisfaisante, puisque le fichier de préférence .epf ne peut pas être chargé automatiquement dans le projet .

Lorsque je créer un projet avec des ressources liées définissant un chemin, je laisse toujours un grand README.txt à la racine de mon projet, afin d'inciter l'utilisateur de ce projet à définir ces mêmes ressources liées avec son propre chemin local fixe.

plusieurs bogues sont en cours pour améliorer cette situation ou autour du sujet de ressources liées .

spécialement:


DevByStarlight mentionne dans les commentaires le projet (pas très actif depuis Oct. Deux mille onze) workspacemechanic .

le mécanicien d'espace de travail automatise la maintenance de votre environnement Eclipse en modifiant les préférences, en ajoutant des emplacements d'extension, et ainsi de suite. Vous pouvez l'utiliser pour:

  • créer un environnement cohérent entre des groupes aussi grands que l'entreprise entière, votre équipe locale, ou même parmi vos propres nombreux espaces de travail
  • gain de temps pour la mise en place de nouveaux espaces de travail
  • créez des tâches qui assurent que vos préférences préférées sont appliquées à tous vos espaces de travail actuels et futurs. (C'est l'une de nos fonctionnalités préférées!)

la clé du comportement mécanique de L'espace de travail est le Task .

Une tâche décrit un test simple et une action qui, lorsqu'elle est exécutée, modifie l'environnement de sorte que le test réussira par la suite.

Tasks peut prendre de nombreuses formes: fichiers de préférences, classes Java, scripts Groovy et extensions Eclipse. Vous pouvez facilement définir vos propres Tâches.

il est livré avec une collection de scripts:

16
répondu VonC 2017-05-23 12:01:57

je viens de trouver une réponse simple à ceci (en Indigo) après avoir travaillé dessus en arrière-plan et des moments libres pendant quelques jours. La façon la plus facile que j'ai trouvée est d'étendre votre projet dans L'Explorateur de projet, aller dans vos bibliothèques référencées, droit-cliquer le bocal référencé approprié et cliquer Propriétés. Là, vous avez les options pour désigner un emplacement JavaDocs. Entrez l'emplacement du dossier qui contient l'index.html et packages-list, les fichiers qui font partie du La documentation javadoc. Morceau de gâteau!

le seul problème que je vois jusqu'à présent est que je parie que vous avez besoin de le faire dans tous les projets qui font référence à cette bibliothèque.

6
répondu alphonzo79 2012-12-11 15:57:39

vous pouvez le faire avec les variables classpath.

chaque développeur crée un couple de nouvelles variables à Window -> Preferences -> Java -> Build Path -> Classpath Variables.

définit une variable (disons, JAVA_LIB_DIR) qui pointe vers un répertoire contenant le JAR tiers (ou les jarres). Définissez une autre variable qui pointe vers un répertoire contenant le code source de la tierce partie (JAVA_SRC_DIR). Vous pouvez régler ça comme vous voulez, mais nous avons un structure comme ceci:

common/   
  lib/
    java/       <-- JAVA_LIB_DIR variable points to this directory
      axis/
      bitronix/
        1.0/bitronix.jar   "extension" is "bitronix/1.0/bitronix.jar"
      ...

dans le chemin de construction de votre projet, utilisez la Variable "Add"..."pour ajouter à la bibliothèque. Ensuite, lorsque vous "attachez source", vous serez invité pour une variable et l'extension au code source.

de cette façon, un simple, partagé .classpath fichier peut être enregistré, tout en permettant à chaque développeur de localiser leur propre bibliothèque et les répertoires sources où ils aiment.

0
répondu erickson 2008-11-19 20:16:48