OpenCSV с Gradle: как ссылаться на файлы ресурсов в src / main / resources - PullRequest
0 голосов
/ 22 мая 2019

Я использую метод OpenCSV CsvToBeanBuilder для чтения данных для загрузки из файлов csv в src / main / resources.

    private static FileReader readDataFromCSV(String filename) throws IOException {

    return new FileReader("src/main/resources/"+filename);

}

private static void loadJobFunctions() throws IOException {

    List<JobFunctions> jobFunctions = new CsvToBeanBuilder(readDataFromCSV("JobFunctionNames.csv"))
            .withType(JobFunctions.class).build().parse();
    ..... 
}

Чтобы OpenCSV мог выбирать файлы при запуске моего основного метода из моей IDE, мне нужно указать путь относительно корня проекта.

("src/main/resources/"+filename)

Когда я использую Gradle для сборки своего jar-файла, он берет файлы из папки ресурсов, но помещает их в корень самого JAR-файла. Поэтому, когда я выполняю флягу, я получаю ошибку "файл не найден". Что было бы предпочтительным решением здесь?

К вашему сведению - мой файл build.gradle содержит этот код ...

jar {
    manifest {
        attributes 'Main-Class': 'DataLoad.DataLoad'
    }
    from configurations.runtime.collect { zipTree(it) }
}
...