2010-12-08 5 views
0

Je développe une application Web et utilise maven pour la gestion des dépendances (duh). Certains des fichiers jars nécessaires sont déjà disponibles dans le dossier lib du serveur, mais ne correspondent pas au "schéma de nommage maven", c'est-à-dire qu'ils ne contiennent pas le suffixe de version.Meilleure pratique de gestion des dépendances Maven et AppServer

Je voudrais les utiliser pour le développement et le déploiement, mais ..
1. Je ne peux pas leur indiquer maven parce que maven semblent avoir besoin d'un suffixe de version. Je ne peux pas l'omettre dans le pom.
2. Si je définis la dépendance en dehors de maven alors maven est évidemment incapable de construire.
3. Renommer les fichiers dans la distribution du serveur ressemble à un kludge.

Que ferait Brian Boitano? Je veux dire, il y a certainement une solution élégante que je ne connais pas, ou du moins un bon argument pour l'une des trois solutions ci-dessus.

Merci

PS. J'utilise jboss 5.1 et maven 2.2.1 atm, mais son sujet change

+0

Je suppose que j'aurais dû nommer la question "comment éviter le déploiement de jar redondant avec maven". donc j'ai 2 "meilleures pratiques" jusqu'à présent - "ne pas essayer d'être intelligent" de c0mrade et "utiliser la portée du système pour les bibliothèques locales" de dimitrisli. La portée du système est censée être quelque peu dépréciée. Je me demande si la dépréciation est toujours valable en ce qui concerne le chemin relatif avec les vars d'environnement comme JBOSS_HOME – kostja

Répondre

1

Vous pouvez fournir ces jarres en tant que dépendance avec une portée system si vous souhaitez explicitement identifier leur lieu de résidence. Pour plus d'informations jetez un oeil here

+0

merci, j'ai déjà compris comment pointer mvn vers des jars locaux mais il y a toujours le problème de version suffix ... eu une idée pour ça aussi? – kostja

+0

que voulez-vous dire par problème de suffixe? Si vous fournissez système et fullPathFileWithoutVersionSuffix.jar dans votre dépendance alors ça devrait aller. – dimitrisli

+0

mon mauvais, n'a pas indiqué explicitement maven au pot mais au dossier de lib. fonctionne maintenant :) et avec $ {env.JBOSS_HOME} la portée du système n'est pas si mauvaise – kostja

0

Si ce ne sont pas des librairies propriétaires que vous utilisez, je vous recommande d'utiliser les versions officielles de celles du dépôt maven. Si elles sont propriétaires, vous pouvez installer manuellement jar dans votre dépôt local en utilisant maven (vous pouvez utiliser votre version, suffixes, noms de groupes, artifactid etc) et ensuite les utiliser dans votre pom.

+0

merci. semble que votre solution est d'ignorer le fait que le pot est déjà là et qu'il suffit de suivre la procédure habituelle. Thats une option que je n'ai pas mentionnée mais: 1. je voudrais éviter des déploiements redondants pour les bocaux communs et 2. pourquoi préférez-vous des bocaux repo à ceux fournis par la distribution de serveur? – kostja

+0

@kostja 1. Parce que c'est ainsi que fonctionne maven, si vous ne l'aimez pas, ne l'utilisez pas. Vous devez avoir artefactId, groupeId, etc. 2. Ils sont fondamentalement les mêmes, mais si vous voulez garder la trace des dernières versions, c'est plus facile que Maven ne le fasse pour vous, que cela vous intéresse. – ant

+0

im peur le choix des outils pour un projet ne sont pas toujours sur les préférences personnelles, du moins pas mes préférences personnelles :) btw j'aime vraiment maven, vous devez un peu après avoir utilisé fourmi. Im juste plutôt nouveau pour cela. comment voulez-vous partager un pot entre webapps "le moyen mvn" sans le dupliquer? – kostja

Questions connexes