jQAssistant-scanInclude Maven工件

时间:2018-11-12 09:23:53

标签: maven jqassistant

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

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

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

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

一切正常,但是现在我想通过到存储库的URL将注释用作Maven工件,因此我不必手动将其添加到每个项目中。

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

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

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

有一个简单的解决方案吗?

1 个答案:

答案 0 :(得分:0)

目前可悲的是不支持扫描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的节点,即注释类型的完全限定的类名。