Bonjour,
C'est une erreur toute bête qui m'affecte, mais je passe dessus sans parvenir à la résoudre. Elle est certainement enfantine, mais Ah ! Je passe à côté de sa solution depuis des jours !
J'ai une méthode qui renvoie la version de mon application en allant la chercher dans le pom.properties généré par Maven. Celui qu'il place systématiquement dans META-INF/maven/[...].
Elle fonctionne très bien déployée, mais lorsqu'elle est exécuté en test d'intégration par failsafe, elle échoue.
Le jar où le pom.properties doit être trouvé est celui de l'artefact service.base,
mais j'ai envisagé qu'il puisse ne pas être construit au moment du test, et j'ai placé une deuxième chance dans l'examen du jar des objets métiers, qui est compilé auparavant.
Mais rien n'y fait. J'ai un NoSuchElementException. L'InputStream vaut null lors des tests.
Avez-vous une idée de pourquoi ?
Merci !
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24 /** * Renvoie un InputStream sur un des pom.properties. Celui de service.base, normalement, mais celui de objets.metiers pour les tests. * @return InputStream vers un pom.properties. * @throws NoSuchElementException si le POM ne peut être trouvé pour en extraire la version. */ @SuppressWarnings("resource") private InputStream getResourceAsStream() { InputStream is = getClass().getClassLoader().getResourceAsStream("/META-INF/maven/com.ardent.checker/service.base/pom.properties"); //$NON-NLS-1$ if (is == null) { is = Environnement.class.getClassLoader().getResourceAsStream("/META-INF/maven/com.ardent.checker/objets.metiers/pom.properties"); //$NON-NLS-1$ } if (is == null) { Ressources rsc = new Ressources(InstallationService.class); String message = rsc.format("excp.pom_manquant"); //$NON-NLS-1$ throw new NoSuchElementException(message); } return is; }
Partager