J'essaie de lier une application tierce à notre projet mais j'ai découvert que les chemins unix de leurs fichiers de propriétés ont été codés en dur en plusieurs classes. Il est probablement possible d'apporter des changements minimes à leur configuration, alors ma question est la suivante: quelles sont les façons possibles (et les plus rapides) d'y parvenir? L'application tierce n'utilise ni la fourmi ni le ressort, mais seulement un script de compilation qui compile le code en .jar qui est appelé depuis la ligne de commande.Possibilité de faire abstraction des noms de chemin codés en dur pour le fichier de propriétés dans l'application java
Répondre
Vous pouvez lire les fichiers de propriétés en tant que ressources. Ensuite, vous n'avez qu'à placer les répertoires contenant ces fichiers dans votre classpath.
Vous n'avez pas réellement dit ce que vous voulez accomplir. Est-ce que votre application détermine certains chemins et les transmet à une application tierce via une API? Quelque chose dans votre environnement (par exemple un argument de ligne de commande) spécifie l'emplacement des fichiers?
Je voudrais d'abord refactoriser leur code afin que je sache avec certitude que toutes les chaînes codées en dur sont conservées dans un endroit défini. Donc, si par exemple ils ont
readProperties("/usr/thing/propertyFileXxx.txt");
ou
static final String PROPERTY_XXX = "/usr/thing/propertyFileXxx.txt";
readProperties(PROPERTY_XXX);
Je voudrais tout d'abord consolider à un seul accesseur pour les propriétés
readProperties(PROPERTY_XXX_ENUM);
Alors maintenant, nous avons une seule pièce bien définie code qui détermine où obtenir les propriétés de chaque type et une liste spécifique des types de propriétés.
Ensuite, nous avons besoin d'un moyen contrôlable pour définir l'ensemble des fichiers de propriétés à utiliser lors de l'exécution. J'ai utilisé l'idée suggérée par @tangens de charger les propriétés en tant que ressources d'un répertoire spécifique ajouté au classpath.
- 1. Spécification du chemin d'accès Java pour le fichier de propriétés
- 2. Comment éviter les noms de champs codés en dur dans HQL, Hibernate?
- 3. Traiter les noms de domaine non codés en dur avec mod_rewrite
- 4. Que faire des noms de noeud XML (valeurs codées en dur)?
- 5. Évitez les rôles codés en dur dans MVC?
- 6. Charger des classes Java basées sur un chemin de classe dans un fichier de propriétés
- 7. Conversion des noms de propriétés de style JSON en noms Java CamelCase avec GSON
- 8. Fichier de propriétés d'application Java
- 9. Faire des manipulations de chemin de fichier dans XSLT
- 10. PropertyGrid - Noms de propriétés personnalisées?
- 11. Messages d'erreur de validation MVC non codés en dur dans les attributs
- 12. Utilisation d'entités de caractères dans le fichier de propriétés Java
- 13. Le plus court chemin pour inverser Propriétés
- 14. sont des appels api ms-dos codés en dur dans exe?
- 15. Comment faire pour récupérer tout le chemin de fichier sélectionné
- 16. Fichier de propriétés Java dans Eclipse
- 17. Comment faire pour tuer le processus de serveur de noms en Java
- 18. Possibilité de spécifier plusieurs interfaces en Java
- 19. ASP.Net abstraction de page
- 20. tutoriel rails literred avec des messages d'erreur codés en dur, comment localiser?
- 21. Possibilité de charger des données dans un fichier javascript?
- 22. Obtenir le chemin du fichier dans Java
- 23. Usine de service: extrêmement long chemin d'accès/noms de fichier
- 24. Implémentation de plusieurs propriétés dans des espaces de noms différents
- 25. Le fichier de propriétés n'est pas inclus dans le fichier jar lorsque l'application Java de package
- 26. Répertoire actuel dans le fichier de propriétés Java
- 27. Enregistrer le chemin du fichier de traitement par lots sur le disque dur local
- 28. Comment écrire des requêtes SQL natives dans Hibernate sans noms et champs de table de codage en dur?
- 29. test de régression traitant du chemin codé dur
- 30. tâche de copier le fichier de propriétés à l'emplacement correspondant dans le répertoire de construction java
Plutôt prêt à l'emploi, mais est-il possible de créer des liens symboliques imitant les chemins codés en dur sur votre installation unix? – Rahul
Je ne sais pas avec certitude, mais je doute que cela fonctionne sur Windows, puisque les dossiers partagés sont de la forme // chemin/va/ici, c'est-à-dire avec double barre oblique. Bu je pourrais bien me tromper là ... – davek