jQAssistant - scanInclude Maven神器

jQAssistant - scanInclude Maven artifact

我有一个结构如下的项目:

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

两者之间存在依赖关系,因为项目 A 中的一些 类 是使用 Annotations 中的自定义注释进行注释的。 projectA 的 pom 中的当前配置如下所示:

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

一切正常,但现在我想通过 URL 将 Annotations 作为 Maven 工件使用到存储库,因此我不必手动将它添加到每个项目。

所以我正在寻找这样的东西:

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

如果我正确理解手册 (https://buschmais.github.io/jqassistant/doc/1.2.0/),scanIncludes 仅适用于 directories/files,但不适用于 URL。

有没有简单的解决方案?

抱歉,目前不支持扫描网址。此时你唯一的机会是使用 Maven 依赖插件将依赖项复制到项目的目标文件夹(参见 https://maven.apache.org/plugins/maven-dependency-plugin/examples/copying-artifacts.html)并像以前一样从那里扫描它。

顺便说一句,有个好消息:在以下版本之一中,可以通过指定工件过滤器将依赖项包含到 Maven 项目的扫描中。

顺便说一句:如果您只需要查看您的注释在项目代码中的使用位置,则没有必要扫描包含您的注释的工件 classes(可能您不扫描 JPA API-Jar 但在概念中也使用从那里提供的注释)。你仍然得到模式 (e)-[:ANNOTATED_BY]->(a:Annotation)-[:OF_TYPE]->(t:Type),唯一的区别是 t 将是一个只提供 属性 fqn 的节点,即注释类型的完全限定 class 名称。