閱讀632 返回首頁    go 阿裏雲 go 技術社區[雲棲]


獨家視頻教程,玩轉《阿裏巴巴Java開發手冊》P3C掃描插件

《阿裏巴巴Java開發手冊》IDE插件(包括PMD規則實現庫)正式對外開源,如何快速掌握插件使用技巧,快速體驗令人激動的自動化、智能化的插件協同工作?阿裏巴巴Java開發手冊P3C項目IDE插件主要開發者駿烈和雲效在線掃描主要開發者勝燕,在雲棲社區直播間,首次為大家提供視頻教程,教大家玩轉插件和在線掃描。

點擊收看


操作演示:大家結合文檔《阿裏巴巴Java開發手冊》IDEA插件與Eclipse插件使用指南直播視頻一起看,效果會更好!

常見問題:

1.Code Style配置問題

很多用戶提出希望能夠提供一份統一的Code Style配置,但通過Eclipse、IDEA自己的配置無法做到兩個平台完全統一。在各種取舍的情況下仍然會有幾個不同點,如下:
  • 分號,IDEA設置的After Semicolon 會對for所有分號後麵加空格,Eclipse 設置insert space after Semicolon in for則不會。
  • 縮進策略不一致,如方法調用折行後的縮進。
  • 類注釋 IDEA會對描述進行縮進,Eclipse有配置項,但是同時對方法、類注釋生效。

解決辦法有兩個:

  • 提供一份Eclipse的配置,IDEA端使用Eclipse Code Formatter之類的插件來做到格式化統一。但對於IDEA用戶不夠友好,也不夠靈活。
  • 提供類似Google Code Format插件的功能,這個目前暫時還未做支持,感興趣的同學可以聯係我們。

2.Eclipse體驗優化

目前已經有Eclipse方麵的專家加入進來,各方麵的優化、改進事項都在規劃中,非常歡迎大家提出自己的寶貴意見或者加入進來。

3.eclipse-plugin、idea-plugin和p3c-pmd三個工程之間的關係

  • p3c-pmd提供大部分規則實現,基於PMD框架開發,如果想實現自己的規則,可以先看看PMD相關文檔。
  • eclipse-plugin依賴p3c-pmd的實現,並且實現了4條需要跨文件掃描的規則。
  • IDEA與eclipse類似,也是依賴p3c-pmd的實現,同時實現了4條需要跨文件掃描的規則。

點擊詳情谘詢



雲效怎麼做在線掃描,怎麼與code集成?集成之後,怎麼通過多維度的報表數據,來提升代碼質量,最終達到公司代碼規範統一?

案例分享:

首先,用IDE插件本地掃描的一個Demo。

b22e92cb6d15e2aa6c02534afee2831f579c5642

然後,我們會看到雲效掃描的問題數,對應的掃描問題,以及在對應的代碼多少行,都能夠在雲效係統看的清清楚楚。

026a105682b962903c967a38111a14c835e7114a

有時候開發隻想知道增量有沒有問題?曆史問題太多修複不過來,我們需要保證新增的代碼有沒有問題。可以將P3C規則集成在code係統中,在阿裏內部已經進行了這樣一個集成。如下圖所示,提交code review的時候,會自動將增量代碼掃描,然後知道增量代碼的質量是怎樣的。

c1ca79abbc15d26ed850a15c9a74faf2def43179

這些都做完以後,我們可以將各類應用的代碼掃描數據做成報表,每周可以發代碼質量報告。俗話說得好,隻有數據才能促進研發效能的提升。我們通過這份報表,看到誰做得好或不好,一目了然,逐漸地就可以將公司的代碼規範,真正的工具化落地實施。

695315073f18bdfd136f01d838f8ff580f464354

在線掃描演示:(可結合直播視頻

首先,打開雲效-測試服務在線掃描入口,點擊測試服務,然後點擊阿裏巴巴Java代碼規約掃描,輸一個測試任務名稱,填寫一下阿裏雲的代碼庫地址,將這個code代碼庫地址複製粘貼過來,代碼分支不填的話默認是master分支,然後點擊確定,確定以後在右上角點運行,就可以對這個代碼庫進行一個掃描。不僅可以掃描自己的代碼,還可以掃描別人公開的代碼。

195f1cd1140453356dde8f713f636da1fcb33b02

然後,刷新一下頁麵,大概等幾十秒吧,可以看到下圖顯示的結果。可以看到這個代碼庫總共有62個問題,blockers是0,critical是1,然後major是61。點開可以看到報告的具體詳情,比如哪些文件違反了哪些規則,以及哪些規則違反了多少次,都一目了然,接著可以對照這個報告來修複問題。當然我們會建議用戶直接在本地進行修複。

60dac8357e2a8e87efb5bd541ce0fbdff3d7aa6a

除了提供掃描工具,雲效還提供從“需求->開發->測試->發布->運維->運營”端到端的協同服務和研發工具支撐。在發布流程中,也可以加規約掃描。打開流水線項目,點擊流水線,打開一個配好的,先構建然後進行代碼規約的掃描,掃描後自動做一個單元測試,然後自動部署。

29e7bcd65f18a7ef43015df761ae940388233add

流水線有很多屬性
可以掃描/長按識別下圖二維碼體驗!
f85a34baedf7118487f1e7b06d70dc07742de56a


常見問題:

1.P3C怎麼與gradle集成?
2.P3C怎麼與maven集成?
3.P3C怎麼與sonar集成?

其實很容易集成,因為P3C插件是基於PMD規則開發,可以參考PMD規則與gradle,maven,sonar集成代碼。

參考鏈接:
*https://github.com/ajoberstar/gradle-plugins/tree/master/src/main/groovy/org/ajoberstar/gradle/pmd 
*https://github.com/apache/maven-plugins/tree/trunk/maven-pmd-plugin 
*https://github.com/SonarQubeCommunity/sonar-pmd

如有其他問題,可以在本文留言哦~


最後更新:2017-11-09 21:33:37

  上一篇:go  Kafka(Quickstart)
  下一篇:go  通過阿裏雲注冊的域名怎麼設置解析?如何登錄萬網域名控製台管理域名?