Bonjour,

Je me suis depuis peu sous maven et j'essaie de déployer une application. J'utilise pour cela un assembly pour composer mon zip livrable dont voici l'arborescence:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
 
resources
--- application
    --- *.mdl
--- configTresos
    --- *.mdl
--- config.xml
--- log4j.properties
 
lib
--- *.jar
 
appli.jar
Le pom est configuré de sorte à générer un manifest dont voici le contenu:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
 
Manifest-Version: 1.0
Archiver-Version: Plexus Archiver
Built-By: Hsmr
Class-Path: resources/ lib/toolbox-1.0.0.jar lib/jep-2.24.jar lib/jdom
 -1.1.jar lib/jxl-2.6.3.jar lib/log4j-1.2.14.jar
Created-By: Apache Maven 3.2.3
Build-Jdk: 1.8.0_25
Main-Class: com.valeo.devsrv.main.Main
Dans ma classe main, je configure mon logger de la façon suivante:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
 
public static void main(String[] args) {
 
		//configure le logger
		PropertyConfigurator.configure(Main.class.getResource("/log4j.properties").getFile());
 
...
Un coup de mvn install me génère bien mon zip comme voulu. Mais quand je lance le jar dans une console j'ai le message suivant:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
 
Exception in thread "main" java.lang.NullPointerException
        at com.valeo.devsrv.main.Main.main(Main.java:26)
La ligne incriminée correspond bien à la ligne où je configure mon logger. Je comprends que l'appel à getResource n'arrive pas à trouver le fichier log4j.properties. Le pourquoi je n'arrive pas à me l'expliquer et ce malgré mes recherches sur le net. Le répertoire resources contenant le *.properties est bien renseigné dans le class-path du manifest généré.

Merci pour votre aide.

Cdt