0

我目前正在做一个小项目。这个想法是使用 jQAssistant 来填充 neo4j 数据库,以便数据可以被 rest api 使用。计划是将 jar、war 或 ear 上传到 java 后端,以便对其进行扫描(scan -f),然后在端口 7474 上启动 neo4j 服务器。

我已经尝试过的:

1.尝试使用 Java ProcessBuilder 和 Runtime 执行“扫描”和“服务器”。

2.使用 gradle 导入 JQAssistant 命令行 Neo4jv3 - 1.6.0 并尝试将 Main.class 中的 run-Method 与命令行参数一起使用(scan -f 文件夹名称)。

服务器启动在这两种情况下都没有任何问题,但是扫描是一个大问题。它似乎没有正确扫描指定的文件夹。已创建的 jqassistant 文件夹没有任何扫描数据。


我假设问题的根源是插件文件夹以及 jqassistant.cmd 和 .sh 文件中出现的变量 JQASSISTANT_HOME 和 JQASSISTANT_OPTS。

实际上是否可以在 Java 代码中执行“服务器”,尤其是“扫描”?

4

1 回答 1

0

可以从 Java 代码中使用 jQAssistant,但我不推荐它,因为底层 API 可能会发生变化。与版本保持向下兼容的是命令行参数,因此在您的问题中描述的 Main 类应该是安全的一段时间。Kontext E ( http://techblog.kontext-e.de/jqassistant-with-gradle/ )提供的 Gradle 集成也使用了这种方法。

假设您在使用为 Windows/Linux 提供的 shell 脚本时遇到了相同的数据丢失问题。一个常见的问题是,要扫描包含 Java 类的文件夹,您需要指定一个范围:

scan -f java:classpath::build/classes/main

前缀提示该java:classpath文件夹应被视为类路径元素,请参阅http://buschmais.github.io/jqassistant/doc/1.6.0/#_scannerhttp://buschmais.github.io/jqassistant/文档/1.6.0/#cli:scan

于 2019-09-10T16:30:19.077 回答