Когда в родительском проекте есть несколько модулей, как указать jqassistant не сканировать и не анализировать конкретный модуль? Это потому, что я получаю ошибку ниже при выполнении jqassistant: сканирование, анализ с родительским pom.xml. Но при индивидуальном запуске сканирование и анализ успешны. Не уверен в причине неисправности. Так есть ли способ пропустить этот модуль из сканирования и анализа jqassistant?
[ERROR] Failed to execute goal com.buschmais.jqassistant:jqassistant->maven-plugin:1.3.0:analyze (default-cli) on project >myXYZProjectIntegrationTests: Execution default-cli of goal >com.buschmais.jqassistant:jqassistant-maven-plugin:1.3.0:analyze failed: >More than one relationship[DECLARES, INCOMING] found for Node[80826] -> >[Help 1]
[INFO] Applying concept 'customJU:LambdaMethods' with severity: 'MINOR'.
[DEBUG] Executing query '
MATCH
(type:Type)-[:DECLARES]->(lambda:Method)
WHERE
exists(lambda.synthetic)
and exists(lambda.static)
and lambda.name starts with("lambda$")
SET
lambda:Lambda
WITH
type, lambda
MATCH
(type)-[:DECLARES]->(method:Method)
WHERE
method <> lambda
and method.firstLineNumber <= lambda.firstLineNumber
and method.lastLineNumber >= lambda.lastLineNumber
MERGE
(method)-[:DECLARES]->(lambda)
RETURN
method as lambdaMethod
' with parameters [{}]
Похоже, что «MERGE (method) - [: DECLARES] -> (lambda)» не работает, если одна из сторон пуста. Как проверить, действительно ли это слияние перед слиянием?
Два ответа:
Я столкнулся с той же проблемой при расширении демонстрационного приложения, просто замените
MERGE
(method)-[:DECLARES]->(lambda)
с участием
MERGE
(method)-[:DECLARES_LAMBDA]->(lambda)
Обратите внимание, что любые зависимые ограничения / концепции необходимо соответствующим образом изменить, чтобы использовать DECLARES_LAMBDA вместо DECLARES. Причина заключается в неоднозначности отношений DECLARES, которые не могут быть обработаны механизмом отчетности jQAssistant.
Вы можете пропустить выполнение одного модуля Maven, добавив следующую конфигурацию плагина в pom.xml:
<build>
<plugins>
<plugin>
<groupId>com.buschmais.jqassistant</groupId>
<artifactId>jqassistant-maven-plugin</artifactId>
<configuration>
<skip>true</skip>
</configuration>
</plugin>
</plugins>
</build>
или просто
<properties>
<jqassistant.skip>true</jqassistant.skip>
</properties>
Да . использование DECLARES_LAMBDA вместо DECLARES помогает решить проблему.