jira8.0 api變化--含解決方法
阿新 • • 發佈:2020-06-02
其中跟開發相關的有一下幾點:
- 結束對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-core
Maven工件中的任何內容,因為它是非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,相當於一個泛型,在編譯時才會尋找變數型別,不需要顯示匯入包了 | 鏈式呼叫,去除中間環節,注意:需要處理空指標 |