6
votes

Dossier de fichier JAR pour les projets Eclipse

J'essaie de créer un dossier centralisé (dans une sorte de «méta-projet» dans mon espace de travail Eclipse) pour les fichiers JAR couramment utilisés pour des projets référencés dans cet espace de travail. Il devrait fonctionner de manière similaire au dossier Web-Inf / Lib pour les projets Web, mais également à appliquer sur des projets non Web, puis numérisez automatiquement tous les fichiers JAR dans ce dossier.

J'ai essayé de créer une bibliothèque d'utilisateurs avec ces fichiers JAR et de les référencez-les dans le projet, mais je dois toujours ajouter chaque nouveau pot manuellement à la bibliothèque d'utilisateurs (et je ne sais pas s'il est référencé par rapport à Absoulute) et Tomcat (WTP) ne semble pas prendre ces fichiers (exécuter comme -> exécuter sur le serveur) dans sa classe de classe (et je ne veux pas dupliquer les pots et les mettre dans Web-Inf / Lib). Des idées?


2 commentaires

er ... ne devriez-vous pas traiter avec des fichiers de guerre avec Tomcat? Ceux qui utilisent toujours web = inf / lib type mentionné ci-dessus.


Cela ne résoudrait pas le premier problème d'avoir la même fonctionnalité du dossier Web-Inf / Lib pour les projets non Web. Et je déploie et exécutez le projet Web directement à partir de Eclipse (donc je veux simplement ajouter un dossier de fichier General Jar à Tomcat ClassPath dans la configuration d'exécution, mais cela ne semblait pas fonctionner)


5 Réponses :


3
votes

Je recommanderais contre cela, cela devient une douleur dans le cul lorsque vous avez beaucoup de projets avec des dépendances qui se chevauchent.

Et si le projet X utilise Commons-Logging-1.0 Mais une personne crée un projet Z qui a vraiment besoin de la communication de la communication-1.1. Voulez-vous que votre dossier central ait des copies du même pot pour chaque numéro de version possible?

Utilisez un outil de construction comme Maven ou Ivy qui téléchargera et gérera des pots dépendants pour vous. Le plug-in Maven-Eclipse fait un très bon travail de génération .project .ClassPath de fichiers pour Eclipse qui mettra automatiquement tous les bocaux à charge sur le chemin de construction et que m2eclipse est également bon pour la manipulation des dépendances de l'éclipse.


0 commentaires

1
votes

Je pense que vous devriez prendre un regard sérieux à Maven. Vous déclarez simplement ce que les "artefacts" chacun de vos projets dépend et Maven s'occupera de récupérer les bocaux d'un référentiel, les ajoutant à la classe de classe et les incluses dans vos fichiers de guerre. Et si vous souhaitez une construction de lots, vous n'avez pas besoin de créer un fichier ant "build.xml": il suffit d'exécuter "mvn" dans le fichier de commande.


0 commentaires

1
votes

J'envisagerais de gérer ces choses avec l'extension de lierre à la fourmi, qui bénéficie d'être Maven compatible si vous voulez déjà aller de la sorte.

Il suffit de tout jeter dans une grosse tasse vous donnera des problèmes, car vous rencontrez des problèmes de version lorsque vous avez soudainement deux projets où l'on utilise la version disponible lorsque cela a été créé, a nd l'autre la version de BugFixed, et Ce ne sont pas compatibles à 100%.


0 commentaires

6
votes

+1 pour lierre.

Si vous préférez le faire dans un projet séparé dans Eclipse:

Vous avez ajouté le "projet commun" comme sur la dépendance pour d'autres projets (Java Country Path-> Projets, puis ajouter). Mais avez-vous exporté les pots du "projet commun"? (Dans le projet commun: Java Country Path-> Commande et exportation, puis cochez tous les bocaux).


3 commentaires

+1 Exportation des pots dans les paramètres du projet fonctionne beaucoup mieux que les bibliothèques utilisateur, d'autant plus que vous pouvez mettre ces paramètres sous contrôle de version qui n'est pas possible avec les utilisateurs libs.


+1 Il me semble exporter les pots est le morceau que vous manquez


Merci, cela semble bien meilleur que la bibliothèque d'utilisateurs et fonctionne. Toujours besoin d'avoir Tomcat en quelque sorte courir avec ces bibliothèques, mais j'espère que cela fonctionnera. Je vais regarder par Maven et / ou Ivy. J'espère pouvoir convaincre les autres membres de l'équipe de l'utiliser.



0
votes

Mon collègue a mis en place un conteneur de classe de classe qui recherche récursivement des pots dans un répertoire donné dans l'espace de travail, consultez http://openscada.org/news/dx/31.05.2010154336jrej4u.htm

Le site de mise à jour est disponible sur http://repo.openscada.org/p2/ Bob / R

Le plugin est sous licence UNTER LGPL V3 et vous pouvez trouver le code source sous HTTP : //pubsvn.inavare.net/OPENSCADA/MODULES/BOB/TRUNK/


0 commentaires