J'ai un simple projet java maven. Une de mes classes lors de l'exécution doit charger un fichier de configuration xml à partir du classpath. Je ne veux pas empaqueter un tel fichier XML lors de la production du fichier jar, mais je veux inclure un fichier xml par défaut dans un assemblage zip sous un sous-dossier conf et je veux également que ce xml soit disponible dans les tests unitaires pour le tester.Où dans le chemin du projet maven dois-je mettre les fichiers de configuration qui ne sont pas considérés comme des ressources
Comme je le vois, il y a 2 places possibles de ce xml par défaut:
src/main/resources/conf/default.xml
src/main/conf/default.xml
Les deux solutions exigent des actions pom spéciales:
En solution 1, je reçois la copie automatique dans le dossier cible pendant b uild ce qui signifie qu'il est disponible dans les tests mais je l'obtiens aussi dans le pot produit que je ne veux pas.
Dans la solution 2, j'obtiens le pot comme je le veux (sans le xml) mais je dois manuellement copier le xml dans le dossier cible pour être disponible pour le test. (Je ne veux pas ajouter les sous-dossiers de src dans le classpath de test, je pense que c'est une mauvaise pratique).
Question: quelle est la meilleure solution des deux?
- Si la valeur correcte est 2, quel est le meilleur moyen de le copier dans le dossier cible?
- Existe-t-il une autre solution meilleure et plus commune que ces deux solutions? (Je lis aussi Where should I put application configuration files for a Maven project? mais je voudrais savoir la solution la plus correcte du point de vue de la "convention sur la configuration" et ce lien fournit quelques solutions de type configuration mais pas de convention. mais les solutions fournies incluent le plugin AntRun et le plugin appAssembler et je me demande si je pourrais le faire sans eux.)
oblèmes avec les deux solutions: 1./déclarer 'conf' comme une ressource l'inclut toujours dans le pot, et ne nous laisse aucun moyen facile d'exclure; 2./créer 'conf' à l'intérieur des ressources, et l'exclure dans le plugin l'amène à ne pas être à la racine du chemin de la classe. – YoYo
pour une raison quelconque c'est une des quelques réponses utiles en général pour "comment exclure quelque chose de maven jar" quand googling ... même s'il ne répond pas OP exactement, c'est toujours un bon exemple d'utilisation de 'maven-jar -plugin' – mmcrae