我是jQAssistant的新手,我非常喜欢它。但是,我对Neo4j数据库中我们公司以外的任何依赖数据不感兴趣。
到目前为止,我还没有找到任何方法来排除JAR在WAR的lib目录中被发现时的扫描。
我错过了什么吗?
或者作为替代方案:我可以从Neo4j数据库中删除不是来自我们代码的所有数据吗?
答案 0 :(得分:1)
文件扫描程序插件有一个非常实验性(因此尚未记录)的属性,允许在扫描期间过滤文件,但功能非常有限。假设您正在使用命令行实用程序进行扫描:
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