en:https://developer.atlassian.com/server/framework/atlassian-sdk/modify-the-plugin/
在前面的步骤中,你已经为JIRA插件创建了一个框架。在教程的该部分,你将修改你的插件来在JIRA菜单上添加一个链接。为了完成这个,你需要使用Atlassian SDK创建一个 Web Section Plugin Module 和一个 Web Item Plugin Module 。
Step 1. 更新出现在插件中的组织信息
- 在关闭JIRA后,你应该仍在myPlugin目录下。
- 在你喜欢的编辑器中打开pom.xml文件。
-
定位到文件中的 <organization> 节点,它应该看起来如下:
<organization> <name>Example Company</name> <url>http://www.example.com/</url> </organization>
-
更新节点来包含一些个人信息,如:
<organization> <name>Atlassian SDK Tutorial</name> <url>http://developer.atlassian.com/</url> </organization>
-
保存并关闭文件。
-
回到命令行窗口,输入atlas-run,等待JIRA重新启动。
-
如果提示登录,完成登录。
-
在浏览器中使用localhost:2990/jira/plugins/servlet/upm打开Manage add-ons页面。
-
展开myPlugin插件,查看你的修改。
-
完成后,使用Ctrl+D关闭JIRA。
Step 2. 在JIRA中添加定制菜单
- 在你喜欢的文本编辑器中,打开myPlugin目录下的
/src/main/resources/atlassian-plugin.xml
文件。 -
atlassian-plugin.xml 文件看上去应该如下:
<atlassian-plugin key="${atlassian.plugin.key}" name="${project.name}" plugins-version="2"> <plugin-info> <description>${project.description}</description> <version>${project.version}</version> <vendor name="${project.organization.name}" url="${project.organization.url}" /> <param name="plugin-icon">images/pluginIcon.png</param> <param name="plugin-logo">images/pluginLogo.png</param> </plugin-info> <!-- add our i18n resource --> <resource type="i18n" name="i18n" location="myPlugin"/> <!-- add our web resources --> <web-resource key="myPlugin-resources" name="myPlugin Web Resources"> <dependency>com.atlassian.auiplugin:ajs</dependency> <resource type="download" name="myPlugin.css" location="/css/myPlugin.css"/> <resource type="download" name="myPlugin.js" location="/js/myPlugin.js"/> <resource type="download" name="images/" location="/images"/> <context>myPlugin</context> </web-resource> </atlassian-plugin>
-
下一步,在命令行窗口中,确认你正处于myPlugin目录,然后运行如下命令:
atlas-create-jira-plugin-module
将会提示你从可能的模块类型列表中选择一个插件模块(从Plugin Modules查看更多信息)。
-
输入30来选择 Web Section插件模块类型。
-
现在,会提示你回答几个配置问题,答案如下:
Enter Plugin Module Name My Web Section: : mySection Enter Location (e.g. system.admin/mynewsection): my-item-link Show Advanced Setup? (Y/y/N/n) N: : N
此时,my-item-link这个location还不存在,但是我们将在下一步中创建。
-
下一步,会询问你是否需要其他插件模块。键入Y来创建另一个模块。
-
键入25来选择
Web Item
插件模块,并按如下回答配置问题:Enter Plugin Module Name My Web Item: : myItem Enter Section (e.g. system.admin/globalsettings): system.top.navigation.bar Enter Link URL (e.g. /secure/CreateIssue!default.jspa): deleteMe Show Advanced Setup? (Y/y/N/n) N: : N
-
当提示你是否需要其他插件模块时,输入N。
系统会完成模块的创建,在创建成功后,你会收到确认信息。
Step 3. 定制菜单
-
打开atlassian-plugin.xml文件,你会发现它发生了一点改变:
<?xml version="1.0" encoding="UTF-8"?> <atlassian-plugin key="${atlassian.plugin.key}" name="${project.name}" plugins-version="2"> <plugin-info> <description>${project.description}</description> <version>${project.version}</version> <vendor name="${project.organization.name}" url="${project.organization.url}"/> <param name="plugin-icon">images/pluginIcon.png</param> <param name="plugin-logo">images/pluginLogo.png</param> </plugin-info> <!-- add our i18n resource --> <resource type="i18n" name="i18n" location="myPlugin"/> <!-- add our web resources --> <web-resource key="myPlugin-resources" name="myPlugin Web Resources"> <dependency>com.atlassian.auiplugin:ajs</dependency> <resource type="download" name="myPlugin.css" location="/css/myPlugin.css"/> <resource type="download" name="myPlugin.js" location="/js/myPlugin.js"/> <resource type="download" name="images/" location="/images"/> <context>myPlugin</context> </web-resource> <web-section name="mySection" i18n-name-key="my-section.name" key="my-section" location="my-item-link" weight="1000"> <description key="my-section.description">The mySection Plugin</description> <label key="my-section.label"/> </web-section> <web-item name="myItem" i18n-name-key="my-item.name" key="my-item" section="system.top.navigation.bar" weight="1000"> <description key="my-item.description">The myItem Plugin</description> <label key="my-item.label"></label> <link linkId="my-item-link">deleteMe</link> </web-item> </atlassian-plugin>
-
在web-section中,删除如下信息:
<label key="my-section.label"/> 这一行
<link linkId="my-item-link">中的deleteMe字段
在本教程中,我们不像要 ‘myItem’ 菜单链接到任何地方,并且我们不想在我们的菜单中看到 ‘mySection’ 标签。
-
保存你的修改。
-
回到命令行窗口,执行atlas-run,等待JIRA启动完成。
-
一旦你登录成功,你会看到这个新的JIRA菜单。
-
使用Ctrl+D关闭JIRA。
下一步
每次启动和关闭JIRA会花费一些时间。QuickReload显著的减少插件开发的迭代时间,所以在本教程的下个部分,你将学习如何使用它来测试对你插件的修改而不必重启JIRA。