其中跟開發相關的有一下幾點:
- 結束對PostgreSQL 9.3的支持
- 結束對MySQL 5.5的支持
- 結束對com.atlassian.fugue的支持(Jira Service Desk)。目前的影響是globalPermissionManager.getGlobalPermission的返回值option的路徑變了,jira8以前的路徑是:com.atlassian.fugue.Option.Jira8的路徑是io.atlassian.fugue.Option
- ContainerProvider SPI移除。(com.atlassian.jira.component.pico.extension.ContainerProvider )
- ComponentManager已移動
工件中的
ComponentManager類jira-core已從com.atlassian.jira包移動 到com.atlassian.jira.component.pico包,以改進包結構。使用jira-api的ComponentAccessor。- 插件一般不應完全取決於
jira-coreMaven工件中的任何內容,因為它是非API的,因此Jira團隊可能會更改,恕不另行通知。
- 使用utf8mb4支持MySQL
- jQuery升級。jQuery從1.7.2升級到2.2.4
- Apache Tomcat升級。Tomcat升級到版本8.5.32,升級到Jira 8.0時可能需要進行一些更改。
項目中不兼容的實例
1.com.atlassian.plugin.Plugin#isEnabled
原因:方法棄用
狀態:已修復
解決方案:改用#getPluginState
示例:
總結:ira的api版本變化不會一個版本直接把上個版本棄用的代碼直接刪除,而是用@deprecated聲明,在未來的某個版本中再棄用。
所以,我們在調用api的時候,要避免使用已經棄用的方法.
2.com.atlassian.jira.issue.search.SearchResults#getIssues
場景:
狀態:暫無解決方案
狀態:已解決
原因:api變動
|
jira7
|
jira8
|
分析
|
|---|---|---|
|
|
|
jira8對SearchResults進行了改造,增加泛型的支持,SearchResults不僅僅是用來存放Issue的查詢結果,還可以查詢其他類型,所以去除了#getIssues方法,用#getResults方法替代。 但是升級沒考慮兼容性,之前的方法不應該刪除,或者新建一個類來實現通用的查詢。 |
解決方案:
|
兼容類
|
使用
|
|---|---|
|
|
|
3.Required:com.atlassian.fugue.Option; Found:io.atlassian.fugue.Option
場景:
狀態:暫無解決方案
原因:jira8結束對com.atlassian.fugue的支持。#getGlobalPermission的返回值由com.atlassian.fugue.Option改為io.atlassian.fugue.Option
狀態:已解決
解決方法:
|
方案一
|
方案二
|
|---|---|
|
|
|
| 通過lombok提供的val,相當於一個泛型,在編譯時才會尋找變量類型,不需要顯示導入包了 | 鏈式調用,去除中間環節,注意:需要處理空指針 |









