Как я могу исключить библиотеки из WAR во время сканирования jQAssistant?

Я новичок в jQAssistant, и он мне очень нравится. Однако я не заинтересован в наличии каких-либо данных о зависимостях за пределами нашей компании в базе данных Neo4j.

До сих пор я не нашел каких-либо средств для исключения сканирования JAR-файлов, когда они находятся в каталоге lib WAR.

Я что-то упускаю?

Или как альтернатива: Могу ли я удалить все данные, которые не поступают из нашего кода, из базы данных Neo4j?


person eerriicc    schedule 07.03.2018    source источник


Ответы (1)


Существует очень экспериментальное (и, следовательно, еще не задокументированное) свойство для плагина сканера файлов, которое позволяет фильтровать файлы во время сканирования, но функциональность весьма ограничена. Предполагая, что вы сканируете с помощью утилиты командной строки:

  1. Создайте файл scan.properties со следующим содержимым:

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

Первый шаблон включает в себя ваш WAR-файл, второй — все содержащиеся JAR-файлы (внутри WAR), последний — нужные вам пакеты (в данном случае org.springframework).

  1. Выполнить интерфейс командной строки

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

person Dirk Mahler    schedule 08.03.2018