Я нахожусь в процессе переноса существующего приложения с Spring-Data-Neo4j 3.x на 4.1 с использованием neo4j-ogm 2.0.4. После преодоления некоторых препятствий теперь он работает нормально при запуске непосредственно из IDE.
Однако он не находит никаких DomainEntities, когда я запускаю его через исполняемую банку Spring Boot:
(ClassPathScanner.java:132) Classpath elements:
(ClassPathScanner.java:134) D:\Programme\Project\myProject.jar
(DomainInfo.java:108) Starting Post-processing phase
(DomainInfo.java:74) Building annotation class map
(DomainInfo.java:87) Building interface class map for 0 classes
(DomainInfo.java:136) Checking for @Transient classes....
(DomainInfo.java:155) Registering converters and deregistering transient fields and methods....
(DomainInfo.java:159) Post-processing complete
(DomainInfo.java:69) 0 classes loaded in 40179 milliseconds
Исполняемый файл jar создается с использованием плагина Spring Boot Gradle, который позволяет сделать файл jar исполняемым:
springBoot {
executable = true
}
Я подключился к приложению через удаленную отладку при запуске jar и обнаружил, что org.neo4j.ogm.scanner.ClassPathScanner#scan
содержит только мой jar как classPathElement
. Согласно коду, теперь это должно сканироваться как файл zip/jar. Однако при выполнении classPathElement.isFile()
это оценивается как false, и банка пропускается. Почему это так? Является ли исполняемый файл jar не файлом?
Какие шаги я могу предпринять, чтобы запустить это? Я мог бы, вероятно, использовать какой-то другой механизм развертывания, но я нашел это довольно простым и хорошо работающим.