首页 > 代码库 > JIRA 本地环境搭建、插件开发、邮件模板定制
JIRA 本地环境搭建、插件开发、邮件模板定制
系统 Mac 语言 JAVA
1、首先安装本地开发环境,JIRA提供SDK,供本地运行及开发。
SDK安装参考文档:https://developer.atlassian.com/docs/getting-started/set-up-the-atlassian-plugin-sdk-and-build-a-project/install-the-atlassian-sdk-on-a-linux-or-mac-system
2、环境搭建好就可以开发插件了。
SDK中 JIRA 版本和 实际使用的JIRA版本比对。以防代码不可用的情况出现。
插件开发使用的 maven 项目,可通过其中引入的 JIRA 包版本来比对。
这里重点:SDK 中默认引入的是:jira-api 包,可用于web界面开发;功能开发的话,需要放开已注释的jira-core包。
而 jira-core 包 maven 中央仓库是不提供的。可在 pom.xml 文件中添加如下配置:
<repositories>
<repository>
<id>atlassian-public</id>
<url>https://maven.atlassian.com/repository/public</url>
<snapshots>
<enabled>true</enabled>
<updatePolicy>never</updatePolicy>
<checksumPolicy>warn</checksumPolicy>
</snapshots>
<releases>
<enabled>true</enabled>
<checksumPolicy>warn</checksumPolicy>
</releases>
</repository>
<repository>
<id> central</id>
<name> Maven Repository Switchboard</name>
<layout> default</layout>
<url> http://repo1.maven.org/maven2</url>
<snapshots>
<enabled> false</enabled>
</snapshots>
</repository>
</repositories>
如上导包之后还有问题:jndi 包导入不成功,是因为jndi 的使用需要许可,直接 maven 不可引入。我的处理办法是,JIRA SDK安装目录下有个 repository文件,从中可以找到 jndi 的 jar 包,把这个 jar 包拷贝到项目 maven jar的目录下,假装下载下来了。
官方说明:https://developer.atlassian.com/jiradev/jira-platform/jira-architecture/building-jira-from-source
插件开发参考文档:https://developer.atlassian.com/docs/getting-started/set-up-the-atlassian-plugin-sdk-and-build-a-project/create-a-helloworld-plugin-project
该插件 DEMO 文档对应的是 JIRA 菜单栏的开发。
功能开发以 workflow 开发为例, 参考文档:https://developer.atlassian.com/jiradev/jira-platform/guides/workflow/tutorial-creating-workflow-extensions#Tutorial-Creatingworkflowextensions-Part2.Createtheworkflowpostfunction
以下实践步骤为workflow中post function开发:
1??不需要输入参数的 post function:
根据文档中,插件使用WorkflowNoInputPluginFactory类,然后把原来的父类删除。插件编译没有问题,但是上传之后出现不可用的情况。
解决办法:(从网上搜索得,方法不太好,但是解决了办法)
插件包下创建Factory类,内容为:
public class Factory extends AbstractWorkflowPluginFactory implements WorkflowPluginFactory {
protected void getVelocityParamsForInput(Map<String, Object> map) {
}
protected void getVelocityParamsForEdit(Map<String, Object> map, AbstractDescriptor abstractDescriptor) {
}
protected void getVelocityParamsForView(Map<String, Object> map, AbstractDescriptor abstractDescriptor) {
}
public Map<String, ?> getDescriptorParams(Map<String, Object> map) {
return null;
}
}
2??需要输入参数的post function:
直接使用生成的 factory类,但是运行时,到输入参数部分报错,WorkflowManager类自动注入不成功。问题解决通过文档:https://bitbucket.org/atlassian/atlassian-spring-scanner/src/1.2.x/README.md?at=1.2.x&fileviewer=file-view-default
主要的部分是在pom.xml 文件中:
找到这部分:
<plugins>
<plugin>
<groupId>com.atlassian.maven.plugins</groupId>
<artifactId>maven-jira-plugin</artifactId>
修改<Import-Package>中的内容为:
org.springframework.osgi.*;resolution:="optional",
org.eclipse.gemini.blueprint.*;resolution:="optional",
com.atlassian.plugin.osgi.bridge.external,
*;resolution:=optional
同时需要在 生成的Factory类中类名上加:
构造函数中:
在头部添加 @Autowired 注解。
即可。
添加自定义的邮件通知
1、添加自定义事件
参考文档: https://confluence.atlassian.com/jira064/adding-a-custom-event-720412690.html
2、添加自定义邮件模板
参考文档:https://confluence.atlassian.com/adminjiraserver071/customizing-email-content-802592932.html
问题点是:
1、自定义的事件使用自定义的邮件模板。
在:Adding a custom event 步骤中,选择 Template 时,选择自定义的模板。
2、自定义的 vm 文件按相同名称在 html、text、subject分别设置一份。(各文件夹下的格式可参考同文件夹下的其他文件)
JIRA 本地环境搭建、插件开发、邮件模板定制
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。