0
votes

Maven: fichier de dépendance locale introuvable dans la guerre / web-inf / lib

J'ai ajouté ma bibliothèque de dépendance locale ( jar fichier): xxx

tout fonctionne bien, jusqu'à quand Maven génère des artefact de guerre.

Je cherche à l'intérieur du fichier de guerre généré, mais la dépendance de Jar n'est pas là à l'intérieur.

Des idées?

Je sais que je suis capable d'utiliser Maven InstallFILE . J'ai besoin de concentrer le problème en utilisant ce type de déclaration de dépendance.


1 commentaires

Si vous savez que vous pouvez utiliser mvn installer: Install-file Pourquoi pas simplement l'utiliser?


3 Réponses :


1
votes

de Maven Documentation : < BlockQuote>

SYSTÈME : Cette portée est similaire à celle fournie, sauf que vous devez fournir le bocal qui la contient explicitement. L'artefact est toujours disponible et n'est pas levé dans un référentiel.

fourni : cela ressemble beaucoup à compiler, mais vous indique que vous attendez la JDK ou un conteneur pour fournir la dépendance au moment de l'exécution. Par exemple, quand Construire une application Web pour l'édition Java Enterprise, vous le feriez Définissez la dépendance sur l'API de servlet et les API connexes Java EE à Portée fournie car le conteneur Web fournit ces classes. Cette la portée est uniquement disponible sur la compilation et le test de classe de contrôle, et est pas transitif.

Il semble que la portée du système nécessite le conteneur ou le JDK pour fournir la dépendance comme la portée fournie. À cause de cela, la dépendance n'est pas emballée dans le fichier de guerre.

Vous pouvez emballer les dépendances dans le dossier LIB à l'aide de Maven-War-Plugin Comme ceci: xxx


0 commentaires

0
votes

Une guerre est une archive Web pour les conteneurs de servlet tels que Tomcat, Glassfish, JBoss (...). Ils sont spécifiés par les spécifications de servlet. Les spécifications indiquent que les données de données (base de données) se situent dans le domaine des conteneurs de servlet.

(...) tapez javax.sql.dataSource pour laquelle la référence aux données la source est injectée par le conteneur avant le composant étant mis à la disposition de L'application.

Vous devez placer le pilote de base de données sur le conteneur de servlet et non l'application Web.


0 commentaires

0
votes

Les dépendances de la compilation sont automatiquement ajoutées à la bande Web-Inf / Lib de la cible dans le cadre de la construction Maven. Les dépendances de la portée du système ne sont pas, les dépendances ayant une portée système doivent être explicitement fournies par définition. Plus d'informations sur l'URL ci-dessous

Assemblée Maven 2 avec dépendances: Jar Sous la portée "Système" non inclus


0 commentaires