1

我是 jQAssistant 的新手,我非常喜欢它。但是,我对在 Neo4j 数据库中拥有我们公司以外的任何依赖关系数据不感兴趣。

到目前为止,我还没有找到任何方法来排除在 WAR 的 lib 目录中找到 JAR 时对其进行扫描。

我错过了什么吗?

或者作为替代方案:我可以从 Neo4j 数据库中删除所有不是来自我们代码的数据吗?

4

1 回答 1

1

文件扫描器插件有一个非常实验性的(因此尚未记录)属性,允许在扫描期间过滤文件,但功能非常有限。假设您正在使用命令行实用程序进行扫描:

  1. 创建具有以下内容的文件 scan.properties:

file.include=*.war,*.jar,/org/springframework/**

第一个模式包含您的 WAR 文件,第二个包含所有 jar 文件(在 WAR 中),最后一个包含您想要的包(在本例中为 org.springframework)。

  1. 执行 CLI

jqassistant -p scan.properties -f application.war

另一种方法(即从 JAR 中删除您不感兴趣的所有节点)是不可行的,因为这将是一个非常昂贵的查询。

但反过来考虑可能是有意义的:只需为您感兴趣的所有 JAR 档案添加一个标签,例如

MATCH (jar:Jar) WHERE jar.fileName starts with "/WEB-INF/lib/spring-" SET jar:Internal RETURN jar.fileName

然后您可以在查询您的 Java 类型时使用该标签:

MATCH (:Internal:Jar)-[:CONTAINS]->(type:Type) RETURN type.fqn

于 2018-03-08T16:40:14.400 回答