Comment dire à Maven d'inclure le pot de dépendance, de ne pas le sous-projet de répertoire source dans Eclipse?

J'utilise Apache Maven pour gérer mes libs Java (jar) et certains de projets qui utilisent la libs. Pour le confort, j'utilise mvn eclipse:eclipse pour générer projet Eclipse fichiers qui peut être importé dans workspace Eclipse pour l'édition.

Problèmes surviennent lorsque j'ai modifier le projet principal et Java lib projets dans le même workspace Eclipse. C'est, mvn eclipse:eclipse comprend src chemin de la dépendance dans .classpath fichier, pas le jar dépendance comme prévu.

Dire que j'ai un Jave lib projet nommé mylib. Le correspondant de fichier jar mylib.jar a été déployé à un privé repo Maven maintenu par moi. Afin d'utiliser mylib.jar dans le projet principal, la dépendance suivant est inclus dans pom.xml.

<!-- pom.xml for the main project -->
<dependency>
  <groupId>namespace.my</groupId>
  <artifactId>mylib</artifactId>
  <version>[1.0, )</version>
</dependency>

mvn compile et mvn test travail parfait, dans lequel mylib.jar est automatiquement téléchargé à partir de mon repo. Toutefois, lorsque vous essayez mvn eclipse:eclipse, je trouve le générés .classpath fichier n'inclut pas mylib.jar dépendance comme prévu. Au lieu de cela, il inclut le répertoire du fichier source pour mylib comme suit.

<!-- .classpath file generated by mvn eclipse:eclipse -->
<classpathentry kind="src" path="/mylib"/>

Il semble que Maven lit Eclipse et métadonnées trouve mylib et le projet principal coexits dans le même espace de travail. Donc maven comprend la source, pour mon bien. Merde. Comment puis-je indiquer à maven d'ignorer le projet local de la source et il suffit d'inclure le fichier jar?

Pourquoi n'utilisez-vous pas la m2e plugin Eclipse à la place?
Parce que je me sens à l'aise pour taper des commandes dans la console -- compilation, test, l'emballage sont tous fait en une seule commande. En outre, utile de configuration des segments dans pom.xml peut être facilement réutilisés dans d'autres projets. Eclipse est bon, mais trop de menus ainsi que de nombreux plugins look compliqué pour moi.
Les deux ne sont pas nécessairement mutuellement exclusifs, même si que vous auriez à renoncer à la Maven plugin Eclipse pour utiliser m2e. Je trouve Eclipse pratique pour le débogage et m2e garantit que le processus de construction est aussi semblable que possible à l'intérieur et à l'extérieur de l'Éclipse.
Ils mutuellement exclusives, vous ne pouvez pas utiliser les deux ensemble. m2e est vraiment génial (comme m2e-wtp), mais peut être une vraie douleur lorsque vous avez les plugins configurés qu'il ne peut pas gérer et qu'il pollue votre pom avec "cycle de vie des mappings". Le maven plugin eclipse est rapide et simple, mais fait le travail.

OriginalL'auteur Jianwen W. | 2012-09-25