我正在使用 neo4j-ogm 2.0.4 将现有应用程序从 Spring-Data-Neo4j 3.x 迁移到 4.1。在克服了一些障碍后,现在直接从 IDE 启动时运行良好。
但是,当我通过 Spring Boot 可运行 jar 运行它时,它没有找到任何 DomainEntities:
(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 被跳过。为什么会这样?可执行jar不是文件吗?
我可以采取哪些步骤来运行它?我可能可以使用其他一些部署机制,但我发现这相当简单且运行良好。