2016-03-15 15 views
6

Dies ist, was ich bekomme, wenn ich atlas-create-jira-plugin ausführen, gefolgt von atlas-create-jira-plugin-module Option 1: Component Import auswählen.atlassian-plugin.xml enthält eine Definition von component-import. Dies ist nicht erlaubt, wenn Atlassian-Plugin-Key gesetzt ist

Das Problem ist, dass alle Tutorial-Beispiele scheinen Plug-In-Deskriptor von alten SDK-Version (die nicht mit neueren Versionen von SDK/Jira überhaupt bereitstellen), die nicht Atlassian-Plugin-Key, so dass ich nicht finden kann, generiert generiert meine Art, eine Komponente zu importieren.

Ich benutze SDK 6.2.3 und Jira 7.1.1.

Irgendein Hinweis - wie man das aussortiert?

Antwort

3

anonym ist korrekt. Die alte Art, Dinge zu tun, war, das <component-import> Tag in Ihre atlassian-plugin.xml zu setzen. Der neue Weg und auch empfohlen ist Atlassian Spring Scanner zu verwenden. Wenn Sie Ihr Add-on mit atlas-jira-create-plugin erstellen und Ihr pom.xml das <Atlassian-Plugin-Key> Tag und die Abhängigkeiten atlassian-spring-scanner-annotation und hat, verwenden Sie den neuen Weg.

Wenn Sie beide Abhängigkeiten haben, verwenden Sie den Atlassian Spring Scanner Version 1.x. Wenn Sie nur atlassian-spring-scanner-annotation haben, verwenden Sie Version 2.x.

Sie müssen müssen component-import nicht auslassen/kommentieren Sie Atlassian-Plugin-Key in Ihrem pom.xml und Sie nicht in Ihrem atlassian-plugin.xml setzen.

Sie möchten zum Beispiel die Lizenz für Ihr Add-on hinzufügen und müssen die Komponente PluginLicenseManager importieren. Man geht einfach direkt auf den Code und Ihren Konstruktor könnte wie folgt aussehen:

@Autowired 
public MyMacro(@ComponentImport PluginLicenseManager licenseManager) { 
    this.licenseManager = licenseManager; 
} 

Und Ihre Klasse wie folgt:

@Scanned 
public class MyMacro implements Macro { 

Wenn mich recht erinnere, sollten Sie für null zu überprüfen, weil manchmal Atlassian Spring Scanner kann keine Komponente injizieren. Ich denke, in Version 1, Schreiben einer @EventListener, konnte es nicht ein ConversionContext injizieren. Aber beim Schreiben eines Makros konnte ein ConversionContext injiziert werden.