в моей папке ресурсов:
src/main/resources
У меня есть два файла: файл application.properties
и файл JSON app.schema.json
У меня есть следующая функция:
private File loadSchema(String schemaName) throws JsonSchemaMissingException {
ClassLoader classLoader = JsonSchemaValidator.class.getClassLoader();
File file = new File(Objects.requireNonNull(classLoader.getResource("app.schema.json")).getFile());
if (!file.exists()) {
log.LogErrorWithTransactionId("", "file does not exist " + file.getAbsolutePath());
throw new JsonSchemaMissingException("file does not exist");
}
return file;
}
Если я запускаю mvn spring-boot:run
, он успешно находит файл. Если я запускаю:
mvn package
java -jar app.jar
Я получаю NullPointer
, поскольку следующий файл не существует:
/home/XXX/Docs/project/XXX/file:/home/ghovat/Docs/project/XXX/target/app.jar!/BOOT-INF/classes!/app.event.json
В моем pom.xml в сборке я добавил со следующими настройками и без них:
<resources>
<resource>
<directory>src/main/resources</directory>
</resource>
</resources>
Ни в коем случае это не работает. Он может получить доступ к файлу, если я запускаю mvn spring-boot:run
, но также если я запускаю mvn clean package spring-boot:repackage
и java -jar target/app.jar
Он не находит файл.
Я проверил все документы и попробовал несколько разных способов загрузить файл, нов любом случае он не находит его.
Как мне сделать файл доступным?