Maven ne peut pas trouver .git (dotGitDirectory)
J'ai un problème similaire à ce qui a été demandé ici, mais il n'y a pas de réponse.
Ont la structure suivante dans le projet maven (qui est la norme):
parent-pom - which is a parent for all others
|_reactor - which is a concrete project, parent-pom is a parent
|_module_1 - reactor is a parent
|_module_2
...
|_module_n
git-commit-id-plugin est configuré en parent-pom et nulle part ailleurs.
Jusqu'à récemment, tout allait bien: j'ai été en mesure de construire à la fois l'ensemble du projet de réacteur et de tous les modules séparément avec mvn clean install.
Ensuite, j'ai ajouté un nouveau module (disons module_n1), je crois que la construction avait été se passe bien jusqu'au massif de fusion.
Maintenant, je suis à la situation suivante: réacteur de construire est un succès, chaque module séparément de 1 à n est construit avec succès.
Mais module_n1 échoue avec l'erreur suivante:
[ERROR] Failed to execute goal pl.project13.maven:git-commit-id-plugin:2.1.7:revision (default) on project module_n1: .git directory could not be found! Please specify a valid [dotGitDirectory] in your pom.xml
Il y a un .git dossier sous réacteur module. Comme une expérience, je l'ai enlevé et obtenir la même erreur pour les autres modules.
Ce que pourrait être une raison pour laquelle un module ne peut pas trouver .git dossier lors de la compilation?
Grâce.
OriginalL'auteur Vic K | 2015-07-01
Vous devez vous connecter pour publier un commentaire.
Je suis tombé sur ce problème aujourd'hui, et la solution est assez clair en regardant ce bien documenté plugin maven:
Ici, vous avez déclaré que le plugin dans 'module_n1" et il n'y est pas .répertoire git dans ce dossier. La solution serait de configurer le plugin pour les suivre si l' .répertoire git est dans le répertoire parent (par exemple. réacteur):
Salut @emeraldjava, je crois que ce problème est indépendant de la plate-forme de déploiement. Il est plutôt lié à maven pas de savoir où trouver les .repo git où il est en train de recueillir des SCM infos. Dans mon cas, j'ai eu un multi-projet de module de sorte que le .git est dans le répertoire parent, j'ai donc eu à dire le plugin. J'espère que ça aide 😉
Bonne analyse, a résolu mon problème par cette référence
OriginalL'auteur Samuel Kerrien
Pas une solution, mais si vous voulez sauter le git-commit-id-plugin d'exécution définies dans un pom parent jusqu'à ce que le projet est ajouté à git, vous pouvez remplacer l'exécution dans votre pom.
OriginalL'auteur charlb
Depuis la version
2.0.4
Le drapeaufailOnNoGitDirectory
esttrue
par défaut. Définir l'indicateur defalse
à assurez-vous que cet objectif est ignorée lors de l'.git
répertoire n'existe pas.Le plugin a une logique interne de la recherche pour
.git
des dépôts dans le courant et le répertoire parent du projet. Je ne voudrais pas vous inquiéter beaucoup si le multi-projet de module se trouve sous le même dépôt git.OriginalL'auteur Raja Anbazhagan
La mise à jour de maven pour la dernière version résolu le problème pour moi.
OriginalL'auteur Florian Lavorel
Je suis tombé sur quelque chose de semblable dans une construction propre du système et il peut être lié à leur de ne pas être un utilisateur git "installé". Sur mon local, je vois
[info]git.construire.de l'utilisateur.nom=myuser
etc, mais rien de tel que sur la propreté du système.
OriginalL'auteur user1742058