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 は、jar を実行可能にすることができる Spring Boot Gradle プラグインを使用して構築されます。
springBoot {
executable = true
}
jar の起動時にリモート デバッグを介してアプリにアタッチしましたorg.neo4j.ogm.scanner.ClassPathScanner#scan
が、自分の jar のみが含まれていることがわかりましたclassPathElement
。コードによると、これは zip/jar ファイルとしてスキャンされるはずです。ただし、 が実行されると、これclassPathElement.isFile()
は false と評価され、jar はスキップされます。なぜそうなのですか?実行可能なjarはファイルではありませんか?
これを実行するには、どのような手順を実行できますか? おそらく他の展開メカニズムを使用することもできますが、これはかなりシンプルでうまく機能することがわかりました。