atlassian-plugin.xml包含component-import的定义。设置Atlassian-Plugin-Key时不允许这样做

时间:2016-03-15 10:19:31

标签: jira-plugin atlassian-plugin-sdk

这是我运行router:debug后跟atlas-create-jira-plugin选择atlas-create-jira-plugin-module选项时获得的结果。

问题是,所有教程示例似乎都有旧SDK版本生成的插件描述符(根本不会使用较新版本的SDK / Jira进行部署),这些版本没有1: Component Import,所以我可以找不到导入组件的方法。

我正在使用SDK 6.2.3和Jira 7.1.1。

任何提示 - 如何解决这个问题?

3 个答案:

答案 0 :(得分:6)

匿名是正确的。旧方法是将<component-import>标记放在atlassian-plugin.xml中。新方法也建议使用Atlassian Spring Scanner。当您使用atlas-jira-create-plugin创建加载项并且pom.xml包含<Atlassian-Plugin-Key>标记以及依赖项atlassian-spring-scanner-annotationatlassian-spring-scanner-runtime时,您将使用新方法。

如果您同时拥有这两个依赖项,那么您使用的是Atlassian Spring Scanner 1.x版。如果您只有atlassian-spring-scanner-annotation,那么您使用的是版本2.x。

您不必在Atlassian-Plugin-Key中忽略/注释掉pom.xml,并且不必将component-import放入atlassian-plugin.xml

例如,您希望为加载项添加许可,并且需要导入组件PluginLicenseManager。您只需直接访问代码,您的构造函数可能如下所示:

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

你的班级是这样的:

@Scanned
public class MyMacro implements Macro {

如果内存对我有用,请务必检查null,因为有时Atlassian Spring Scanner无法注入组件。我认为在版本1上编写@EventListener,它无法注入ConversionContext。但是在编写宏时,它能够注入ConversionContext

答案 1 :(得分:4)

在这里找到答案:https://developer.atlassian.com/docs/advanced-topics/configuration-of-instructions-in-atlassian-plugins

看起来我已经遗漏了Atlassian-Plugin-Key可以省略,并且必须在需要导入组件时完成。

这个关键只是告诉春天不要改变&#39;插件的Spring配置,必须作为组件导入过程的一部分发生..

答案 2 :(得分:3)

根据 https://bitbucket.org/atlassian/atlassian-spring-scanner

component-import不需要。您可以在Java中用@ComponentImport注释替换它。