¿Dónde debo colocar el archivo log4j.properties cuando utilizo los directorios convencionales de Maven?
java
maven
configuration
log4j
user496949
fuente
fuente

Respuestas:
src/main/resourceses la "colocación estándar" para esto.Actualización: lo anterior responde a la pregunta, pero no es la mejor solución. Vea las otras respuestas y los comentarios sobre esto ... probablemente no enviaría sus propias propiedades de registro con el jar, sino que lo dejaría al cliente (por ejemplo, servidor de aplicaciones, entorno de escenario, etc.) para configurar el registro deseado. Por lo tanto, ponerlo
src/test/resourceses mi solución preferida.Nota: Hablando de salir de la configuración de registro concreto para el cliente / usuario, debe considerar sustituir
log4jconslf4jen su aplicación.fuente
resourcesylog4j.propertiesen la carpeta mencionada en la respuesta.src/main/resourcesse copiarán por defecto atarget/classesSolo ponerlo lo
src/main/resourcesagrupará dentro del artefacto. Por ejemplo, si su artefacto es un JAR, tendrá ellog4j.propertiesarchivo dentro, perdiendo su punto inicial de hacer que el registro sea configurable.Por lo general, lo pongo
src/main/resourcesy lo configuro para que se envíe al destino de la siguiente manera:Además, para que log4j lo vea realmente, debe agregar el directorio de salida a la ruta de clase. Si su artefacto es un JAR ejecutable, probablemente haya utilizado el complemento maven-assembly para crearlo. Dentro de ese complemento, puede agregar la carpeta actual del JAR a la ruta de clase agregando una
Class-Pathentrada de manifiesto de esta manera:Ahora el archivo log4j.properties estará justo al lado de su archivo JAR, configurable independientemente.
Para ejecutar su aplicación directamente desde Eclipse, agregue el
resourcesdirectorio a su classpath en su configuración de ejecución:Run->Run Configurations...->Java Application->Newseleccione laClasspathpestaña, seleccioneAdvancedy busque susrc/resourcesdirectorio.fuente
${project.build.directory}o debería editarse en la ruta real en la que vive el proyecto en mi disco local?Algunas cuentas de "minería de datos"
src/main/resourcesson el lugar típico.Resultados en la búsqueda de código de Google :
src/main/resources/log4j.properties: 4877src/main/java/log4j.properties: 215fuente
resourcesnoresource, si no recuerdo mal.resourcefue solo un error tipográfico.Los recursos utilizados para inicializar el proyecto se colocan preferiblemente en la carpeta src / main / resources . Para permitir la carga de estos recursos durante la compilación, uno simplemente puede agregar entradas en el proyecto pom.xml en maven como recurso de compilación
Otros archivos .properties también se pueden guardar en esta carpeta utilizada para la inicialización. El filtrado se establece como verdadero si desea tener algunas variables en los archivos de propiedades de la carpeta de recursos y llenarlas desde los archivos de propiedades de filtros de perfil, que se guardan en src / main / filters que se configura como perfiles pero es un caso de uso completamente diferente . Por ahora, puedes ignorarlos.
Este es un gran recurso de complementos de recursos de Maven , es útil, solo navega a través de otras secciones también.
fuente
Cuando colocar archivos de recursos en otra ubicación no es la mejor solución que puede usar:
Por ejemplo, cuando los archivos de recursos (por ejemplo, jaxb.properties) profundizan en los paquetes junto con las clases Java.
fuente
Si su archivo log4j.properties o log4j.xml no se encuentra en src / main / resources, use este PropertyConfigurator.configure ("log4j.xml");
fuente
Agregue el siguiente código de las etiquetas de recursos en su pom.xml dentro de las etiquetas de compilación. significa que las etiquetas de recursos deben estar dentro de las etiquetas de compilación en su pom.xml
fuente