@Animal attention ce que tu écris ne fonctionne QUE parce que ton fichier se trouve dans le classpath de test (car intégré au jar de test).
Dès que le fichier est en dehors du classpath, ça ne marchera pas.
Après investigation, ton problème est dû à la cross-compilation entre deux versions du JDK.
Explications
Tu essaies de compiler des sources Java en syntaxe 8 pour qu'elles soient compilées dans un bytecode dont le format sera à destination d'une JRE 8.
Or, tu opères cette compilation depuis un JDK 10. Que se passe-t-il alors ?
Simplement que le compilateur t'avertie que la JRE 8 a une certaine API et que ton JDK 10 contient l'API 8 + toutes les classes qui ont été ajoutées dans Java 9 et 10. Ce faisant, si tu venais à utiliser une classe n'existant que dans Java 10, alors même si le bytecode que le compilateur produit à partir de tes sources est à destination de Java 8, tu ne pourras pas lancer ton programme et tu auras une ClassNotFoundException.
Le JDK 10 ne pouvant pas savoir quelles classes ne se trouvent que dans Java 10, il te demande un bootstrap classpath, c'est-à-dire un chemin vers le fichier rt.jar d'un JDK 8, afin de ne te permettre de n'utiliser que des classes de l'API de Java 8 dans ton code.
Ainsi, le JDK 10 n'utilisera plus son rt.jar à lui qui est trop récent, mais l'ancien.
Solution
Ajouter dans la configuration du maven-compiler-plugin l'option
Il faut aussi que la variable $JRE8_HOME soit définie dans ton OS.
Et voilà.
N.B : en ce qui concerne les modules de Java 9, c'était une fausse piste, mea maxima culpa !