0

我使用“快速入门”原型使用 maven 开始了一个项目。然后我更改了我的 POM 以包含 neo4j:

https://github.com/ENCE688R/msrcs/blob/master/pom.xml

我补充说:

https://github.com/neo4j/neo4j/blob/master/community/embedded-examples/src/main/java/org/neo4j/examples/EmbeddedNeo4j.java

跑了

mvn package

这工作没有错误,但是

java -cp target/msrcs-1.0-SNAPSHOT.jar org.neo4j.examples.EmbeddedNeo4j

返回错误:

Exception in thread "main" java.lang.NoClassDefFoundError: org/neo4j/graphdb/RelationshipType

我错过了什么?在这一点上,我只需要测试我是否可以包含和使用 neo4j。

4

3 回答 3

2

采用

mvn exec:java -Dexec.mainClass=org.neo4j.examples.EmbeddedNeo4j

还有将mvn dependency:copy所有依赖项复制到target/dependencies

还有一个 mvn appassembler 插件,它允许您生成启动 shell 脚本,其中包含所有依赖项作为类路径。

最后但并非最不重要的是,maven 程序集插件mvn assembly:single可以生成一个可以运行的 jar 文件java -jar my-jar-file.jar

于 2013-04-09T07:04:52.830 回答
1

您还需要将 Neo4j 依赖项添加到您的类路径中。目前您只添加您创建的源 jar。如果您查看此POM,您会发现 Neo4J 示例需要许多其他依赖项。

找到已下载依赖项的 libs 目录(这可能在您的本地 .m2 maven 存储库中)并将这些 jars 添加到您的类路径中。您不需要逐个添加每个 jar,因为您可以简单地添加带有通配符的目录 - 例如:

视窗:

java -cp "target/msrcs-1.0-SNAPSHOT.jar;lib/*" org.neo4j.examples.EmbeddedNeo4j

Mac/Unix:

java -cp "target/msrcs-1.0-SNAPSHOT.jar:lib/*" org.neo4j.examples.EmbeddedNeo4j
于 2013-04-05T12:12:04.547 回答
1

我已经开始研究一些 maven 原型,这也可能是一个很好的起点。

于 2013-04-22T13:15:58.900 回答