atlassian-plugin.xml 包含组件导入的定义。设置 Atlassian-Plugin-Key 时不允许这样做

atlassian-plugin.xml contains a definition of component-import. This is not allowed when Atlassian-Plugin-Key is set

这是我在 运行 atlas-create-jira-plugin 然后 atlas-create-jira-plugin-module 选择选项 1: Component Import.

时得到的结果

问题是所有教程示例似乎都有由旧版 SDK 生成的插件描述符(根本不会部署 SDK/Jira 的新版本),没有 Atlassian-Plugin-Key , 所以我找不到导入组件的方法。

我正在使用 SDK 6.2.3 和 Jira 7.1.1。

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

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

看来我不知何故遗漏了Atlassian-Plugin-Key可以省略,而且当你需要导入组件时必须这样做。

这个键只是告诉 spring 不要 'transform' 插件的 Spring 配置,这必须作为组件导入过程的一部分发生..

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

component-import 不需要。您可以在 Java.

中用 @ComponentImport 注释替换它

匿名是正确的。旧的做事方式是将 <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 扫描仪版本 1.x。如果你只有 atlassian-spring-scanner-annotation 那么你使用的版本是 2.x.

您不必在 pom.xml 中 omit/comment 输出 Atlassian-Plugin-Key,也不必在 atlassian-plugin.xml 中输入 component-import

例如,您想要为您的附加组件添加许可并需要导入组件 PluginLicenseManager。您只需直接查看代码,您的构造函数可能如下所示:

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

你的 class 是这样的:

@Scanned
public class MyMacro implements Macro {

如果没记错,请务必检查 null,因为有时 Atlassian Spring Scanner 无法注入组件。我认为在版本 1 中,写一个 @EventListener,它不能注入一个 ConversionContext。但是当写一个宏时,它能够注入一个 ConversionContext.