Eclipse : Partage de ressources statiques entre projets

 Article modifié dernièrement le 19 Août 2010 @ 17 h 18 min

Problème

Le problème est assez simple, j’ai deux applications web qui doivent afficher les mêmes images voire utiliser certains scripts JavaScript communs et feuilles de styles. Dupliquer les ressources est à priori le moyen auquel on pense le premier, mais dans mon cas j’ai 1 go d’images donc imaginez …

Comment faire en sorte que plusieurs projets utilisent des ressources communes qui appartiendraient à un projet indépendant ?

© http://eventbrite-s3.s3.amazonaws.com

© http://eventbrite-s3.s3.amazonaws.com

  • Pour le partage de classes Java il me semble que l’option « Add Class Folder », disponible dans l’onglet « Libraries » du menu « Java Build Path » de votre projet, le permet.
  • Pour le partage d’images, de scripts ou de feuilles de styles qu’en est-il ? je vais vous donner la solution que j’utilise mais qui ne me convient qu’à moitié, vous allez comprendre pourquoi.

Solution

Pour le partage des ressources statiques je mets en place une nouvelle application web qui est lancée constamment et qui me permet donc d’accéder à ces ressources par une simple url.

Dans mes projets devant afficher des images du projet commun, il suffit à présent de changer l’url de la source et le tour est joué, voici un exemple :

  • au lieu d’héberger les images dans son projet et de les appeler de cette façon :
[xml] <img src="/Web_App_1/images/papillon.jpg"/> ou <img src="/Web_App_2/images/papillon.jpg"/>
[/xml]
  • à présent il suffit de faire ça :
[xml] <img src="http://localhost/Nouvelle_Web_App/images/papillon.jpg"/> en chemin absolu ou
<img src="/Nouvelle_Web_App/images/papillon.jpg"/> en chemin relatif
[/xml]

Je me retrouve donc sans aucune dépendance physique entre mes projets, juste un lien vers une application qui héberge les ressources. Et ceci fonctionne de la même façon avec les scripts JavaScript et feuilles de styles car l’import de ces fichiers se fait par une url.

Conclusion

C’est mieux que rien mais ce n’est pas tout à fait satisfaisant étant donné qu’il faut déployer une nouvelle application web rien que pour ça et j’imagine que ce n’est pas toujours faisable en entreprise.

C’est pourquoi si vous avez une solution ou un script qui permettrait de faire ça proprement, je suis preneur.

Edit (solution 2)

Cette solution a été proposé dans les commentaires de l’article par frangin2003, un grand merci à lui car sa solution est bien meilleure, la voici :

Eclipse permet dans vos projets d’utiliser des dossiers de votre système en tant que « Linked Folder », ce qui se traduit par une sorte de raccourci de dossier permettant ainsi de ne pas avoir les fichiers physiquement dans le projet mais bien ailleurs (extérieur au projet).

Pour cela il faut que dans votre projet vous créez un dossier (clic droit -> new Folder) puis cliquer sur le bouton en bas de la fenêtre nommé « Advanced », ensuite cocher la case « Link to folder in the file system ». C’est là que vous allez choisir le dossier qui contient vos ressources statiques partagées.

Ces ressources apparaissent à présent dans votre projet eclipse comme si elles faisaient partie physiquement du projet, ce qui permet de faire appel à ces ressources naturellement comme cela :

[xml] <img src="/Web_App_1/images_linked/papillon.jpg"/>
[/xml]

Trois flèches vers le bas

1- Logiciel de brouillage d’adresse IP :

Contourner la censure en surfant anonyme

2- L’article explicatif :

La différence entre un proxy et un VPN

3- Comment espionner un smartphone (app) :

L’application de référence

Commentez ici

  • Greg 7 avril 2010, 23 11

    L’article, avec 6 votants, se trouve déjà en première page du site Diggons. Les gens lisent l’article de Mimie mais ne répondent pas… Leur aurais-tu posé une colle ?

  • Mimie 5 juin 2010, 11 11

    Oui dommage que je n’ai aucun avis … Grrrr

  • frangin2003 19 août 2010, 15 03

    Salut Mimie,

    En cherchant la même chose que toi, je suis tombé sur ton post.

    Et puis en cherchant un peu plus j’ai trouvé qu’on pouvait créer des répertoires ou fichiers « raccourcis » dans eclipse. Pour ce faire, tu demande à créer par un exemple un nouveau répertoire -> option « Advanced » -> Link to folder in the file system. Tu peux ainsi utiliser des ressources qui sont dans un autre projet comme si elles étaient dans ton projet.

    En espérant t’avoir aidé.

  • Mimie 19 août 2010, 16 04

    @frangin2003 : alors là chapeau bas … je viens de tester et en effet cela fonctionne 🙂 merci à toi d’avoir pris le temps de répondre sur ce blog, ça va me permettre de supprimer cette deuxième webapp au démarrage de mon tomcat ^^

    Article mis à jour en proposant ta solution, merci 🙂

  • Mimie 7 avril 2011, 18 06

    L’utilisation d’un CDN est en réalité la meilleure solution 🙂 article à venir.

Article suivant:

Article précédent:

Share This