Ich habe mein Latein am Ende erreicht, um herauszufinden, warum ich nicht eine Datei von meinen Ressource Ordner in einem Gradle Projekt laden kann.getResourcesAsStream kann nicht Datei aus jUnit lädt
Mein Projekt hat folgende Ordnerstruktur:
/src
/main
/java
/datasets
/IrisDataReader.java
/resources
/datasets
/Iris.csv
/test
/java
/resources
/datasets
/Iris.csv
In meinem Test/java, ich habe einige Tests laufen, die IrisDataReader verwenden Iris.csv in ein Programm zu lesen.
Nachfolgend erzeugt eine Null-Zeiger Ausnahme.
InputStream inputStream = IrisDataReader.class.getResourceAsStream("/datasets/Iris.csv");
Wenn gebaut, erstellt Gradle die folgende Struktur Datei
/build
/classes
/main
/datasets
/IrisDataReader.class
/resources
/main
/datasets
/Iris.csv
Hier ist der seltsame Teil: Wenn ich kopieren bauen/resources/main/Datensätze/Iris.csv in/build/classes/main/Datasets /, der Klassenlader kann die Datei erfolgreich laden. Irgendwelche Ideen?
Ich habe keine der gradle Standardkonfigurationen oder hinzugefügt alle Build-Tasks geändert.
Wie laufen Sie Ihren Code? Was ist der Klassenpfad? – Andreas
Ich führe die JUnit mit IntelliJs GUI. Es ist so konfiguriert, dass es den Klassenpfad des Moduls verwendet (es gibt mehrere Module im Projekt; der Quellbaum oben ist eines der Module) – brainmurphy1