Пропустить JQAssistant сканирование и анализ для конкретного проекта подмодуля из-за ошибки - PullRequest
0 голосов
/ 01 мая 2018

Если в родительском проекте несколько модулей, как указать jqassistant не сканировать или анализировать конкретный модуль? Это потому, что я получаю ошибку ниже при выполнении jqassistant: scan, analysis with parent pom.xml. Но при индивидуальном запуске сканирование и анализ успешны. Не уверен насчет причины отказа. Так есть ли способ пропустить этот модуль из сканирования и анализа jqassistant?

Ошибка Maven

[ОШИБКА] Не удалось выполнить цель com.buschmais.jqassistant: jqassistant-> maven-plugin: 1.3.0: проанализировать (default-cli) по проекту> myXYZProjectIntegrationTests: Выполнить default-cli цели> com.buschmais.jqassistant : jqassistant-maven-plugin: 1.3.0: проанализировать не удалось:> Найдено более одного отношения [DECLARES, INCOMING] для узла [80826] ->> [Help 1]

Журнал отладки Maven:

[INFO] Применение концепции 'customJU: LambdaMethods' со степенью серьезности: '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 (метод) - [: ОБЪЯВЛЯЕТ] -> (лямбда)" не удается, если любая из сторон пуста. Как проверить правильность слияния перед слиянием?

1 Ответ

0 голосов
/ 02 мая 2018

Два ответа:

  1. Я наткнулся на ту же проблему при расширении демонстрационного приложения, просто замените

    MERGE
      (method)-[:DECLARES]->(lambda)
    

    с

    MERGE
      (method)-[:DECLARES_LAMBDA]->(lambda)
    

    Обратите внимание, что любые зависимые ограничения / концепции необходимо соответствующим образом изменить, чтобы использовать DECLARES_LAMBDA вместо DECLARES. Причиной этого является неоднозначность отношений DECLARES, которая не может быть обработана механизмом отчетности jQAssistant.

  2. Вы можете пропустить выполнение для одного модуля 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>
    
...