我是 jQAssistant 的新手,我非常喜欢它。但是,我对在 Neo4j 数据库中拥有我们公司以外的任何依赖关系数据不感兴趣。
到目前为止,我还没有找到任何方法来排除在 WAR 的 lib 目录中找到 JAR 时对其进行扫描。
我错过了什么吗?
或者作为替代方案:我可以从 Neo4j 数据库中删除所有不是来自我们代码的数据吗?
我是 jQAssistant 的新手,我非常喜欢它。但是,我对在 Neo4j 数据库中拥有我们公司以外的任何依赖关系数据不感兴趣。
到目前为止,我还没有找到任何方法来排除在 WAR 的 lib 目录中找到 JAR 时对其进行扫描。
我错过了什么吗?
或者作为替代方案:我可以从 Neo4j 数据库中删除所有不是来自我们代码的数据吗?
文件扫描器插件有一个非常实验性的(因此尚未记录)属性,允许在扫描期间过滤文件,但功能非常有限。假设您正在使用命令行实用程序进行扫描:
file.include=*.war,*.jar,/org/springframework/**
第一个模式包含您的 WAR 文件,第二个包含所有 jar 文件(在 WAR 中),最后一个包含您想要的包(在本例中为 org.springframework)。
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