2010-03-02 4 views
3

J'installe au dépôt Maven nos fichiers internes à l'aide de la commande mvn install: install. Tous les fichiers Jars installés de cette manière ont un nom de version ajouté automatiquement en tant que suffixe. Comme nous avons de nombreux scripts batch avec les noms Jars, c'est très gênant pour nous. Comment ce renommage automatique peut-il être désactivé?Comment arrêter Maven renommer jars installés

Répondre

7

Vous ne pouvez pas. La résolution des dépendances dans Maven fonctionne parce que Maven a des conventions et la dénomination des artefacts en fait partie. Donc, vous ne pouvez pas désactiver la façon dont les artefacts (et vous ne voulez pas le faire).

La manière courante de gérer les scripts (bat/sh) est de les placer dans votre arborescence source (par exemple, dans src/main/bin) et de créer une distribution de votre projet avec le assembly plugin. Lors de la construction de votre assemblage, vous pouvez renommer les artefacts, les fichiers de distribution filter, etc. Ce serait le bon endroit pour faire ce genre de choses.

3

Il est tentant de vouloir supprimer le numéro de version, mais je vous recommande de le garder si possible. Au lieu de supprimer les numéros de version, peut-être que vous pourriez utiliser la capacité Maven's resource filtering pour gérer vos scripts de traitement par lots? Maven peut gérer vos scripts batch en remplaçant les espaces réservés tels que $ {project.version} dans le script bat par le numéro de version actuel du fichier pom.xml. De cette façon, vous pouvez vous assurer que le script batch exécute la version correcte (attendue) du code.

Vous pourriez probablement forcer maven à déployer un pot sans version, mais si vous le faites, vous perdrez certains des principaux avantages d'avoir Maven gérer votre build en premier lieu, imo. Par exemple, hier, on m'a demandé de maintenir un projet java non géré par maven avec un tas de fichiers jar non versionnés dans un répertoire lib. Il n'y a aucun moyen de savoir d'où vient l'un des pots.

Cela peut être un peu mal à l'aise, mais si vous utilisez Maven, vous pouvez sauter à 100% (encore une fois, d'après mon expérience).

+0

Les scripts (bat/sh) ne sont généralement pas des ressources. –

+0

@Pascal Thivent, pourquoi ne peuvent-ils pas être? J'utilise la technique où je mets mes scripts sous des scripts de noms de répertoires. Ensuite, je peux configurer le filtre de ressources Maven pour filtrer les fichiers dans le répertoire des scripts. Cela fonctionne très bien. – Upgradingdave

+0

Ne se retrouvent-ils pas dans la cible/les classes (ce qui peut ne pas être désiré)? –

Questions connexes