Eclipse Web Les Dépendances D'Un Projet
Cette question est à propos de développement d'Eclipse, je suis en train de créer une application web dans Eclipse, le problème est que je ne reçois pas les dépendances les pots pour le déploiement de l'archive.
J'ai créé un nouveau projet web dynamique et l'a lié à un autre projet Java. Le projet Java références à quelques la 3e partie pots (par exemple, le Printemps des pots), mais pour certaines raisons, lors de la publication de projet web, je ne reçois que le projet Java jar dans le dossier lib de la guerre, sans le projet Java dépendances (e.g.Le printemps).
En d'autres termes, j'ai Un projet (projet web) qui dépend du projet B (Projet Java), le projet B dépend de Printemps pots. Lorsque je publie de projet web, d'une guerre à JBoss uniquement le projet B est emballé dans le pot (pas de ressort pots)
Je sais que je peux le faire avec ant, j'ai même ces build.xml
pour construire l'ensemble de l'application, mais j'ai pensé eclipse peut également effectuer l'emballage tâche pour moi.
J'ai ajouté le projet Java pour le module Java EE des dépendances dans le projet web.
Dois-je utiliser l'option d'exportation dans le projet Java build path propriétés? dois-je ajouter les dépendances d'un projet Java pour le projet web ainsi?
Ce que je fais mal?
Modifier: je suis à l'aide d'Eclipse 3.5.1
- Également envisager cette question: stackoverflow.com/questions/1691553/....
- J'ai vu cette question, en ajoutant les dépendances du module Java EE dépendances seulement ne résout pas mon problème
- Vous avez probablement besoin d'ajouter le Printemps pots de projet web, la liste des dépendances ainsi. Ils peuvent ne pas avoir été transitive.
Vous devez vous connecter pour publier un commentaire.
Je sais, ça fait quatre ans depuis le dernier post, et peut-être que cette option n'était pas disponible à l'époque, mais voici ce qui a fonctionné pour moi:
Deployment Assembly
Être averti que les étapes 4 à 6 signifie que si vous utilisez eclipse pour compiler votre fichier jar, il va maintenant inclure à votre charge les bibliothèques dans ce pot.
Grâce à rodgarcialima pour m'aider à obtenir à l'étape 3.
Si le but est de prendre les dépendances (lire: les fichiers JAR/projets/etc) de la autres projet dans l'exécution classpath de l' actuel projet, puis seulement de cette façon ne fonctionne pas. Vous devez configurer le autres projet de exportation ses dépendances. Cela se fait par la Commande et à l'Exportation dans l'onglet propriétés du chemin de génération. Espérons que cette aide.
Également prendre note de ce bug signalé sur Eclipse WTP, qui empêchent parfois les dépendances d'être déployé sur WEB-INF/lib, même si vous avez tout configuré correctement. Soupir.
Bug 312897 - la fonctionnalité de Déploiement de ne pas déployer classpath dépendances.
Si je comprends bien, pour utiliser un POT au moment de la compilation dans Eclipse et assurez-vous qu'il est également disponible au moment de l'exécution dans le serveur d'applications, vous:
Si vous avez besoin d'JAR est requis par un autre projet que vous utilisez, personnellement, je ne liste que des dépendances explicites dans le build path et aussi les ajouter à l'exportation du module dépendances.
Mais ne prenez pas ma réponse à la valeur nominale que je suis tombé sur ce post en cherchant la raison pour laquelle je suis NoClassDefFound des erreurs dans mon projet Eclipse... 😉
Vous devriez être à l'emballage de votre application web dans un fichier WAR avant de le déployer. Il doit y avoir un moyen de dire Éclipse qui fichiers JAR que vous souhaitez mettre dans le dossier WEB-INF/lib du répertoire. Si non, écrivez une Fourmi build.xml qui le fait pour vous.
Vous ne devriez pas avoir à modifier tout classpath variables, soit dans votre environnement ou le serveur d'application. La bonne façon de le faire est de créer un fichier WAR.
Mise à JOUR: j'ai relu votre question:
Qu'est-ce que cela signifie? Vous ne devriez pas mettre n'importe quoi dans le JBOSS /lib dir. Le point de l'ensemble d'un fichier WAR, c'est qu'il s'agit d'un auto-contenant de l'artefact qui porte le long de toutes ses dépendances. Si vous essayez d'écrire des trucs pour JBOSS /lib, vous le faites mal.
La GUERRE du fichier doit aller dans le domaine que vous avez défini. Aucun besoin de modifier le serveur d'application.
Si je vous comprends bien, le problème est que si vous utilisez Un projet qui dépend à son tour du projet B vous n'obtenez pas les artefacts du projet B, mais seulement A.
Le problème, c'est que votre projet doit établir la liste de TOUTES les choses dont il a besoin dans les Propriétés -> Java EE module de dépendances, qui est un mécanisme distinct de l'habituel projet exportations. Vous aurez probablement besoin de faire de l'expérimentation.