Onde devo colocar o arquivo log4j.properties ao usar os diretórios convencionais do Maven?
java
maven
configuration
log4j
user496949
fonte
fonte
Respostas:
src/main/resources
é o "canal padrão" para isso.Atualização: O item acima responde à pergunta, mas não é a melhor solução. Confira as outras respostas e os comentários sobre isso ... você provavelmente não enviaria suas próprias propriedades de log com o jar, mas deixaria para o cliente (por exemplo, servidor de aplicativos, ambiente de estágio etc.) para configurar o log desejado. Assim, colocá-lo
src/test/resources
é a minha solução preferida.Observação: por deixar a configuração de log concreta para o cliente / usuário, considere substituir
log4j
porslf4j
no seu aplicativo.fonte
resources
elog4j.properties
na pasta mencionada na resposta.src/main/resources
serão copiados por padrão paratarget/classes
Basta colocá-lo no
src/main/resources
pacote dentro do artefato. Por exemplo, se seu artefato for um JAR, você terá olog4j.properties
arquivo dentro dele, perdendo o ponto inicial de tornar o registro configurável.Eu costumo colocá-lo
src/main/resources
e configurá-lo como saída para o destino da seguinte forma:Além disso, para que o log4j realmente o veja, você precisa adicionar o diretório de saída ao caminho da classe. Se o seu artefato for um JAR executável, você provavelmente utilizou o maven-assembly-plugin para criá-lo. Dentro desse plug-in, você pode adicionar a pasta atual do JAR ao caminho da classe adicionando uma
Class-Path
entrada de manifesto da seguinte maneira:Agora, o arquivo log4j.properties estará ao lado do seu arquivo JAR, configurável independentemente.
Para executar seu aplicativo diretamente do Eclipse, inclua o
resources
diretório no caminho de classe na sua configuração de execução:Run->Run Configurations...->Java Application->New
selecione aClasspath
guia, selecioneAdvanced
e navegue até seusrc/resources
diretório.fonte
${project.build.directory}
ou deve ser editado para o caminho real que o projeto vive na minha unidade local?Algumas "minerações de dados" são responsáveis por esse
src/main/resources
local típico.Resultados na Pesquisa de código do Google :
src/main/resources/log4j.properties
: 4877src/main/java/log4j.properties
: 215fonte
resources
nãoresource
, se bem me lembro.resource
foi apenas um erro de digitação.Os recursos usados para inicializar o projeto são preferencialmente colocados na pasta src / main / resources . Para ativar o carregamento desses recursos durante a construção, basta adicionar entradas no pom.xml no projeto maven como um recurso de construção
Outros arquivos .properties também podem ser mantidos nessa pasta usada para inicialização. A filtragem é configurada como true se você deseja ter algumas variáveis nos arquivos de propriedades da pasta resources e preenchê-las nos arquivos de propriedades dos filtros de perfil, que são mantidos em src / main / filters, que é definido como perfis, mas é um caso de uso completamente diferente . Por enquanto, você pode ignorá-los.
Este é um ótimo plug-in de recursos , é útil, basta navegar por outras seções também.
fonte
Quando colocar arquivos de recursos em outro local não é a melhor solução que você pode usar:
Por exemplo, quando os arquivos de recursos (por exemplo, jaxb.properties) vão fundo nos pacotes junto com as classes Java.
fonte
Se o arquivo log4j.properties ou log4j.xml não for encontrado em src / main / resources, use este PropertyConfigurator.configure ("log4j.xml");
fonte
Adicione o código abaixo das tags de recursos em seu pom.xml dentro das tags de compilação. portanto, as tags de recursos devem estar dentro das tags de compilação no seu pom.xml
fonte