Où dois-je placer le fichier log4j.properties lorsque j'utilise les répertoires Maven conventionnels?
java
maven
configuration
log4j
user496949
la source
la source
Réponses:
src/main/resources
est le "placement standard" pour cela.Mise à jour: ce qui précède répond à la question, mais ce n'est pas la meilleure solution. Consultez les autres réponses et les commentaires à ce sujet ... vous ne livreriez probablement pas vos propres propriétés de journalisation avec le fichier jar, mais laisseriez au client (par exemple, serveur d'application, environnement de scène, etc.) le soin de configurer la journalisation souhaitée. Ainsi, l'introduire
src/test/resources
est ma solution préférée.Remarque: en parlant de laisser la configuration du journal concret au client / utilisateur, vous devriez envisager de remplacer
log4j
parslf4j
dans votre application.la source
resources
etlog4j.properties
dans le dossier mentionné dans la réponse.src/main/resources
seront copiés par défaut verstarget/classes
Le simple fait de le placer
src/main/resources
le regroupera dans l'artefact. Par exemple, si votre artefact est un JAR, vous aurez lelog4j.properties
fichier à l'intérieur, perdant son point initial de rendre la journalisation configurable.Je le mets généralement et je le
src/main/resources
configure pour qu'il soit affiché sur la cible comme suit:De plus, pour que log4j le voie réellement, vous devez ajouter le répertoire de sortie au chemin de classe. Si votre artefact est un JAR exécutable, vous avez probablement utilisé le plugin maven-assembly-plugin pour le créer. Dans ce plugin, vous pouvez ajouter le dossier actuel du JAR au chemin de classe en ajoutant une
Class-Path
entrée de manifeste comme ceci:Maintenant, le fichier log4j.properties sera juste à côté de votre fichier JAR, configurable indépendamment.
Pour exécuter votre application directement depuis Eclipse, ajoutez le
resources
répertoire à votre chemin de classe dans votre configuration d'exécution:Run->Run Configurations...->Java Application->New
sélectionnez l'Classpath
onglet, sélectionnezAdvanced
et accédez à votresrc/resources
répertoire.la source
${project.build.directory}
ou doit-elle être modifiée sur le chemin réel du projet dans mon lecteur local?Certains comptes «d'exploration de données» pour qui
src/main/resources
est l'endroit typique.Résultats de la recherche de code Google :
src/main/resources/log4j.properties
: 4877src/main/java/log4j.properties
: 215la source
resources
pas non plus leresource
cas, si je me souviens bien.resource
n'était qu'une faute de frappe.Les ressources utilisées pour l'initialisation du projet sont de préférence placées dans le dossier src / main / resources . Pour activer le chargement de ces ressources lors de la construction, on peut simplement ajouter des entrées dans le pom.xml dans le projet maven en tant que ressource de construction
D'autres fichiers .properties peuvent également être conservés dans ce dossier utilisé pour l'initialisation. Le filtrage est défini sur true si vous souhaitez avoir certaines variables dans les fichiers de propriétés du dossier de ressources et les remplir à partir des fichiers de propriétés des filtres de profil, qui sont conservés dans src / main / filters qui est défini comme profils, mais il s'agit d'un cas d'utilisation complètement différent. . Pour l'instant, vous pouvez les ignorer.
C'est un excellent plugin de ressources maven , c'est utile, il suffit de parcourir d'autres sections aussi.
la source
Lorsque placer des fichiers de ressources dans un autre emplacement n'est pas la meilleure solution que vous puissiez utiliser:
Par exemple, lorsque les fichiers de ressources (par exemple jaxb.properties) pénètrent profondément dans les packages avec les classes Java.
la source
Si votre fichier log4j.properties ou log4j.xml ne se trouve pas sous src / main / resources, utilisez ce PropertyConfigurator.configure ("log4j.xml");
la source
Ajoutez le code ci-dessous à partir des balises de ressources dans votre pom.xml à l'intérieur des balises de construction. cela signifie donc que les balises de ressources doivent être à l'intérieur des balises de construction dans votre pom.xml
la source