如何在jQAssistant扫描期间排除WAR中的库?

时间:2018-03-07 16:23:37

标签: jqassistant

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

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

我错过了什么吗?

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

1 个答案:

答案 0 :(得分:1)

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

  1. 使用以下内容创建文件scan.properties:
  2. file.include=*.war,*.jar,/org/springframework/**

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

    1. 执行CLI
    2. 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