jQAssistant - scanInclude артефакт Maven - PullRequest
0 голосов
/ 12 ноября 2018

У меня есть проект со следующей структурой:

myProject
  + Annotations
      - pom.xml
  + projectA
      + jqassistant
          -my-rules.xml 
      - pom.xml

Между ними есть зависимости, так как некоторые классы из проекта A снабжены пользовательскими аннотациями из аннотаций. Текущая конфигурация в pom ProjectA выглядит следующим образом:

<configuration>
            <concepts>
                    <concept>classpath:Resolve</concept>
            </concepts>
            <scanIncludes>
                <scanInclude>
                    <path>../Annotations/target/classes</path>
                    <scope>java:classpath</scope>
                </scanInclude>
            </scanIncludes>
            [...]
</configuration>

Все работает нормально, но теперь я хочу использовать аннотации как артефакт maven через URL-адрес хранилища, поэтому мне не нужно вручную добавлять его в каждый проект.

Итак, я ищу что-то вроде этого:

<scanInclude>
   <path>https://...</path>
   <scope>java:classpath</scope>
</scanInclude>

Если я правильно понимаю Руководство (https://buschmais.github.io/jqassistant/doc/1.2.0/) правильно, scanInclude работает только для каталогов / файлов, но не для URL-адресов.

Есть ли простое решение для этого?

1 Ответ

0 голосов
/ 12 ноября 2018

К сожалению, в настоящее время сканирование URL не поддерживается. В настоящий момент ваш единственный шанс - использовать плагин зависимостей Maven, чтобы скопировать зависимость в целевую папку вашего проекта (см. https://maven.apache.org/plugins/maven-dependency-plugin/examples/copying-artifacts.html) и отсканировать ее оттуда, как вы делали это раньше.

Кстати, есть хорошие новости: в одном из следующих выпусков можно будет включить зависимости в проверку проекта Maven, указав фильтр артефактов.

Кстати: если вам нужно только увидеть, где ваши аннотации используются в коде вашего проекта, нет необходимости сканировать артефакт, содержащий ваши классы аннотаций (возможно, вы не сканируете JPA API-Jar, но используете аннотации оттуда и в концепциях). Вы по-прежнему получаете шаблон (e)-[:ANNOTATED_BY]->(a:Annotation)-[:OF_TYPE]->(t:Type), единственное отличие состоит в том, что t будет узлом, который предоставляет только свойство fqn, т.е. полное имя класса типа аннотации.

...