2016-04-29 8 views
1

Ich habe meine Maven-Repository mit JQassistant gescannt. Jetzt möchte ich herausfinden, welche Klassen von @Stateful kommentiert werden. Aber selbstErhalten Sie Anmerkungen von jqassistant nach Maven-Repository-Scan

MATCH (a:Java:Value:Annotation) RETURN DISTINCT a.name 

gibt keine Zeilen als Ergebnis zurück. Sind Anmerkungen nicht Teil des Repository-Scans? Oder schreibe ich eine falsche Anfrage?

Antwort

2

die folgende Abfrage werden alle Klassen von @Stateful kommentierte Rückkehr

MATCH 
    (t:Type)-[:ANNOTATED_BY]->()-[:OF_TYPE]->(statefulType:Type) 
WHERE 
    statefulType.fqn = "javax.ejb.Stateful" 
RETURN 
    t.fqn 

Wenn Sie ein Repository gescannt haben könnte es sinnvoll sein, auch das Artefakt zurück, die diese Art enthält:

MATCH 
    (a:Artifact)-[:CONTAINS]->(t:Type), 
    (t)-[:ANNOTATED_BY]->()-[:OF_TYPE]->(statefulType:Type) 
WHERE 
    statefulType.fqn = "javax.ejb.Stateful" 
RETURN 
    a.fqn, collect(t.fqn) 
+0

That funktioniert, danke. Weißt du, warum meine Abfrage keine Zeilen zurückgibt? –

+0

Ok, wahrscheinlich weil Java: Value: Annotation keinen Inhalt hat. –

+0

Die erste Abfrage wurde verifiziert - die Ursache ist, dass der Scanner dem Annotationsknoten nicht das Java-Label hinzugefügt hat, aber die Dokumentation schlägt vor, dass es da ist. Ich habe ein Problem erstellt (https://github.com/buschmais/jqassistant/issues/378), das mit der nächsten Version behoben wird. –