Maven : ajouter des ressources externes
Je suis de construction d'un fichier jar exécutable avec maven, ce qui signifie que vous exécutez avec "java-jar file.jar".
Je veux compter sur défini par l'utilisateur propriétés (juste un fichier contenant les clés/valeurs), au cours de developpement de la phase I était de mettre mon "utilisateur."propriétés de fichier dans maven /src/main/resources/dossier.
Mon fichier de propriétés est chargé avec:
final Properties p = new Properties();
final InputStream resource = IOParametres.class.getResourceAsStream("/user.properties");
p.load(resource);
Maintenant, je veux garder ce fichier à l'extérieur du BOCAL et avoir quelque chose comme ceci :
- execution_folder
|_ file.jar
|_ config
|_ user.properties
J'ai essayé beaucoup de choses avec des plugins maven comme maven-jar-plugin maven-surefire-plugin et maven-ressources-plugin, mais je ne peux pas le faire fonctionner...
Merci d'avance pour votre aide!
Oui, c'est juste un fichier séparé, mais la chose est 1 - je ne sais pas où le pot et les fichiers de configuration seront mis par l'utilisateur 2 - j'ai d'autres fichiers de ressources utilisées par les dépendances (DB connexion et autres)
Si vous aimez le fichier de propriétés à l'extérieur, vous devez définir le classpath pour pointer vers votre
executon_folder/config/
dossier sinon vous ne serez pas en mesure d'accéder à votre user.properties
. Ainsi, une simple java -jar file.jar
ne fonctionnera pas.en effet, j'ai essayé beaucoup de choses et il fonctionne en fait comme je veux quand je ajouter ma "config/" mon MANIFESTE du classpath. J'ai essayé de l'ajouter à l'aide de maven plugin surefire (avec le additionalClasspathElements tag) mais il ne fonctionne pas. Savez-vous comment faire pour qu'il soit automatiquement ajouté par maven ? (Apparemment, c'est m2e limitation : encore un maven question)
OriginalL'auteur GournaySylvain | 2014-10-31
Vous devez vous connecter pour publier un commentaire.
J'ai trouvé ce dont j'avais besoin à l'aide seulement de configuration de maven.
J'ai d'abord ajouter le dossier config à la variable classpath:
Je charge les ressources de la même manière qu'avant:
Et si vous voulez garder votre exemple, les fichiers de ressources dans votre pension et les supprimer de votre build:
À côté du fichier jar, j'ai ajouter une config dossier contenant tous les fichiers de ressources dont j'ai besoin.
Le résultat est:
Merci pour l'aide, et j'espère que ça peut aider quelqu'un un jour!
Je ne comprends pas vraiment votre question ici... Dans mon scénario, les fichiers de configuration n'ont pas été stockés dans le fichier jar (exclu dans le pom.xml fichier). La création et la copie de vos fichiers de configuration doit être gérée sur le déploiement de côté
Oui. Je veux un moyen d'obtenir le dossier config à l'extérieur du bocal sans manuellement copyng ou le collage. Comment avez-vous gérer cela?
Une façon de résoudre ce problème serait d'utiliser une automatisation du déploiement de l'outil (par exemple. ansible) si vous souhaitez conserver les ressources séparé de fichier jar. Vous pouvez également déployer un filtrée ressources pot et l'extraire sur votre serveur (mais encore une fois, vous pouvez le faire manuellement ou grâce à l'automatisation)
OriginalL'auteur GournaySylvain
Comme je l'ai mentionné dans le commentaire - on dirait que vous voulez utiliser
user.properties
fichier comme un fichier texte qui se trouve en dehors de votre bocal. Si c'est le cas, que son utilisation est plutôt simple - répertoire contenant votre fichier jar est le répertoire courant lorsque cette option est cochée lors de l'exécution. Cela signifie que vous aurez besoin de:sans essayer de la mettre sur le projet de chemin de classe.
Et si rien d'autre est là pour le faire, il suffit de copier vos propriétés dans le répertoire des ressources pour objectif d'éviter le tourbillon de le faire à la main. Qui peut être atteint par maven-antrun-plugin:
OriginalL'auteur Deltharis