这是我运行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。
任何提示 - 如何解决这个问题?
答案 0 :(得分:6)
匿名是正确的。旧方法是将<component-import>
标记放在atlassian-plugin.xml
中。新方法也建议使用Atlassian Spring Scanner。当您使用atlas-jira-create-plugin
创建加载项并且pom.xml
包含<Atlassian-Plugin-Key>
标记以及依赖项atlassian-spring-scanner-annotation
和atlassian-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)
看起来我已经遗漏了Atlassian-Plugin-Key
可以省略,并且必须在需要导入组件时完成。
这个关键只是告诉春天不要改变&#39;插件的Spring配置,必须作为组件导入过程的一部分发生..
答案 2 :(得分:3)
根据 https://bitbucket.org/atlassian/atlassian-spring-scanner
component-import
不需要。您可以在Java中用@ComponentImport
注释替换它。