แƒ›แƒ˜แƒ›แƒ“แƒ˜แƒœแƒแƒ แƒ”แƒแƒ‘แƒก IntelliJ IDEA แƒ˜แƒœแƒกแƒžแƒ”แƒฅแƒขแƒ˜แƒ แƒ”แƒ‘แƒ แƒฏแƒ”แƒœแƒ™แƒ˜แƒœแƒกแƒ–แƒ”

IntelliJ IDEA-แƒก แƒ“แƒฆแƒ”แƒก แƒแƒฅแƒ•แƒก แƒงแƒ•แƒ”แƒšแƒแƒ–แƒ” แƒ›แƒแƒฌแƒ˜แƒœแƒแƒ•แƒ” แƒกแƒขแƒแƒขแƒ˜แƒ™แƒฃแƒ แƒ˜ Java แƒ™แƒแƒ“แƒ”แƒ‘แƒ˜แƒก แƒแƒœแƒแƒšแƒ˜แƒ–แƒแƒขแƒแƒ แƒ˜, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒ—แƒแƒ•แƒ˜แƒกแƒ˜ แƒจแƒ”แƒกแƒแƒซแƒšแƒ”แƒ‘แƒšแƒแƒ‘แƒ”แƒ‘แƒ˜แƒ— แƒจแƒแƒ แƒก แƒขแƒแƒ•แƒ”แƒ‘แƒก แƒ˜แƒกแƒ”แƒ— โ€žแƒ•แƒ”แƒขแƒ”แƒ แƒแƒœแƒ”แƒ‘แƒกโ€œ, แƒ แƒแƒ’แƒแƒ แƒ˜แƒชแƒแƒ แƒจแƒ”แƒ›แƒแƒฌแƒ›แƒ”แƒ‘แƒ˜แƒก แƒกแƒขแƒ˜แƒšแƒ˜ ะธ Spotbugs. แƒ›แƒ˜แƒกแƒ˜ แƒ›แƒ แƒแƒ•แƒแƒšแƒ แƒ˜แƒชแƒฎแƒแƒ•แƒแƒœแƒ˜ โ€žแƒ˜แƒœแƒกแƒžแƒ”แƒฅแƒขแƒ˜แƒ แƒ”แƒ‘แƒโ€œ แƒแƒ›แƒแƒฌแƒ›แƒ”แƒ‘แƒก แƒ™แƒแƒ“แƒก แƒกแƒฎแƒ•แƒแƒ“แƒแƒกแƒฎแƒ•แƒ แƒแƒกแƒžแƒ”แƒฅแƒขแƒจแƒ˜, แƒ™แƒแƒ“แƒ˜แƒ แƒ”แƒ‘แƒ˜แƒก แƒกแƒขแƒ˜แƒšแƒ˜แƒ“แƒแƒœ แƒขแƒ˜แƒžแƒฃแƒ  แƒจแƒ”แƒชแƒ“แƒแƒ›แƒ”แƒ‘แƒแƒ›แƒ“แƒ”.

แƒ—แƒฃแƒ›แƒชแƒ, แƒกแƒแƒœแƒแƒ› แƒแƒœแƒแƒšแƒ˜แƒ–แƒ˜แƒก แƒจแƒ”แƒ“แƒ”แƒ’แƒ”แƒ‘แƒ˜ แƒœแƒแƒฉแƒ•แƒ”แƒœแƒ”แƒ‘แƒ˜แƒ แƒ›แƒฎแƒแƒšแƒแƒ“ แƒ“แƒ”แƒ•แƒ”แƒšแƒแƒžแƒ”แƒ แƒ˜แƒก IDE-แƒ˜แƒก แƒšแƒแƒ™แƒแƒšแƒฃแƒ  แƒ˜แƒœแƒขแƒ”แƒ แƒคแƒ”แƒ˜แƒกแƒจแƒ˜, แƒ˜แƒกแƒ˜แƒœแƒ˜ แƒœแƒแƒ™แƒšแƒ”แƒ‘แƒแƒ“ แƒกแƒแƒ แƒ’แƒ”แƒ‘แƒšแƒแƒ‘แƒ”แƒœ แƒ’แƒแƒœแƒ•แƒ˜แƒ—แƒแƒ แƒ”แƒ‘แƒ˜แƒก แƒžแƒ แƒแƒชแƒ”แƒกแƒจแƒ˜. แƒกแƒขแƒแƒขแƒ˜แƒ™แƒฃแƒ แƒ˜ แƒแƒœแƒแƒšแƒ˜แƒ–แƒ˜ แƒฃแƒœแƒ“แƒ แƒจแƒ”แƒกแƒ แƒฃแƒšแƒ“แƒ”แƒก แƒ แƒแƒ’แƒแƒ แƒช แƒ›แƒ˜แƒšแƒกแƒแƒ“แƒ”แƒœแƒ˜แƒก แƒ›แƒจแƒ”แƒœแƒ”แƒ‘แƒšแƒแƒ‘แƒ˜แƒก แƒžแƒ˜แƒ แƒ•แƒ”แƒšแƒ˜ แƒœแƒแƒ‘แƒ˜แƒฏแƒ˜, แƒ›แƒ˜แƒกแƒ›แƒ แƒจแƒ”แƒ“แƒ”แƒ’แƒ”แƒ‘แƒ›แƒ แƒฃแƒœแƒ“แƒ แƒ’แƒแƒœแƒกแƒแƒ–แƒฆแƒ•แƒ แƒแƒก แƒฎแƒแƒ แƒ˜แƒกแƒฎแƒ˜แƒก แƒ™แƒแƒ แƒ˜แƒ‘แƒญแƒ”แƒ”แƒ‘แƒ˜ แƒ“แƒ แƒ›แƒจแƒ”แƒœแƒ”แƒ‘แƒšแƒแƒ‘แƒ แƒฃแƒœแƒ“แƒ แƒฉแƒแƒ•แƒแƒ แƒ“แƒ”แƒก, แƒ—แƒฃ แƒฎแƒแƒ แƒ˜แƒกแƒฎแƒ˜แƒแƒœแƒ˜ แƒ™แƒแƒ แƒ˜แƒ‘แƒญแƒ”แƒ”แƒ‘แƒ˜ แƒแƒ  แƒ’แƒแƒ˜แƒ•แƒšแƒ˜แƒก. แƒชแƒœแƒแƒ‘แƒ˜แƒšแƒ˜แƒ, แƒ แƒแƒ› TeamCity CI แƒ˜แƒœแƒขแƒ”แƒ’แƒ แƒ˜แƒ แƒ”แƒ‘แƒฃแƒšแƒ˜แƒ IDEA-แƒกแƒ—แƒแƒœ. แƒ›แƒแƒ’แƒ แƒแƒ› แƒ›แƒแƒจแƒ˜แƒœแƒแƒช แƒ™แƒ˜, แƒ—แƒฃ แƒแƒ  แƒ˜แƒงแƒ”แƒœแƒ”แƒ‘แƒ— TeamCity-แƒก, แƒจแƒ”แƒ’แƒ˜แƒซแƒšแƒ˜แƒแƒ— แƒ›แƒแƒ แƒขแƒ˜แƒ•แƒแƒ“ แƒกแƒชแƒแƒ“แƒแƒ— IDEA แƒ˜แƒœแƒกแƒžแƒ”แƒฅแƒขแƒ˜แƒ แƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒจแƒ•แƒ”แƒ‘แƒ แƒœแƒ”แƒ‘แƒ˜แƒกแƒ›แƒ˜แƒ”แƒ  แƒกแƒฎแƒ•แƒ CI แƒกแƒ”แƒ แƒ•แƒ”แƒ แƒ–แƒ”. แƒ›แƒ” แƒ’แƒ˜แƒ แƒฉแƒ”แƒ•แƒ— แƒœแƒแƒฎแƒแƒ—, แƒ—แƒฃ แƒ แƒแƒ’แƒแƒ  แƒจแƒ”แƒ˜แƒซแƒšแƒ”แƒ‘แƒ แƒแƒ›แƒ˜แƒก แƒ’แƒแƒ™แƒ”แƒ—แƒ”แƒ‘แƒ IDEA Community Edition, Jenkins แƒ“แƒ Warnings NG แƒ›แƒแƒ“แƒฃแƒšแƒ˜แƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ˜แƒ—.

แƒœแƒแƒ‘แƒ˜แƒฏแƒ˜ 1. แƒฉแƒแƒแƒขแƒแƒ แƒ”แƒ— แƒแƒœแƒแƒšแƒ˜แƒ–แƒ˜ แƒ™แƒแƒœแƒขแƒ”แƒ˜แƒœแƒ”แƒ แƒจแƒ˜ แƒ“แƒ แƒ›แƒ˜แƒ˜แƒฆแƒ”แƒ— แƒแƒœแƒ’แƒแƒ แƒ˜แƒจแƒ˜

แƒ—แƒแƒ•แƒ“แƒแƒžแƒ˜แƒ แƒ•แƒ”แƒšแƒแƒ“, IDE (แƒ“แƒ”แƒกแƒ™แƒขแƒแƒž แƒแƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒ˜แƒก!) แƒ’แƒแƒจแƒ•แƒ”แƒ‘แƒ˜แƒก แƒ˜แƒ“แƒ”แƒ CI แƒกแƒ˜แƒกแƒขแƒ”แƒ›แƒ˜แƒก แƒจแƒ˜แƒ’แƒœแƒ˜แƒ—, แƒ แƒแƒ›แƒ”แƒšแƒกแƒแƒช แƒแƒ  แƒแƒฅแƒ•แƒก แƒ’แƒ แƒแƒคแƒ˜แƒ™แƒฃแƒšแƒ˜ แƒ˜แƒœแƒขแƒ”แƒ แƒคแƒ”แƒ˜แƒกแƒ˜, แƒจแƒ”แƒ˜แƒซแƒšแƒ”แƒ‘แƒ แƒกแƒแƒ”แƒญแƒ•แƒ แƒ“แƒ แƒซแƒแƒšแƒ˜แƒแƒœ แƒžแƒ แƒแƒ‘แƒšแƒ”แƒ›แƒฃแƒ แƒ˜ แƒฉแƒแƒœแƒ“แƒ”แƒก. แƒกแƒแƒ‘แƒ”แƒ“แƒœแƒ˜แƒ”แƒ แƒแƒ“, IDEA-แƒก แƒ“แƒ”แƒ•แƒ”แƒšแƒแƒžแƒ”แƒ แƒ”แƒ‘แƒ›แƒ แƒฃแƒ–แƒ แƒฃแƒœแƒ•แƒ”แƒšแƒงแƒ แƒ’แƒแƒจแƒ•แƒ”แƒ‘แƒ˜แƒก แƒจแƒ”แƒกแƒแƒซแƒšแƒ”แƒ‘แƒšแƒแƒ‘แƒ แƒ™แƒแƒ“แƒ˜แƒก แƒคแƒแƒ แƒ›แƒแƒขแƒ˜แƒ แƒ”แƒ‘แƒ ะธ แƒ˜แƒœแƒกแƒžแƒ”แƒฅแƒขแƒ˜แƒ แƒ”แƒ‘แƒ แƒ‘แƒ แƒซแƒแƒœแƒ”แƒ‘แƒ˜แƒก แƒฎแƒแƒ–แƒ˜แƒ“แƒแƒœ. แƒฃแƒคแƒ แƒ แƒ›แƒ”แƒขแƒ˜แƒช, IDEA-แƒก แƒแƒ› แƒ แƒ”แƒŸแƒ˜แƒ›แƒจแƒ˜ แƒ’แƒแƒกแƒแƒจแƒ•แƒ”แƒ‘แƒแƒ“, แƒ’แƒ แƒแƒคแƒ˜แƒ™แƒฃแƒšแƒ˜ แƒฅแƒ•แƒ”แƒกแƒ˜แƒกแƒขแƒ”แƒ›แƒ แƒแƒ  แƒแƒ แƒ˜แƒก แƒกแƒแƒญแƒ˜แƒ แƒ แƒ“แƒ แƒ”แƒก แƒแƒ›แƒแƒชแƒแƒœแƒ”แƒ‘แƒ˜ แƒจแƒ”แƒ˜แƒซแƒšแƒ”แƒ‘แƒ แƒจแƒ”แƒกแƒ แƒฃแƒšแƒ“แƒ”แƒก แƒกแƒ”แƒ แƒ•แƒ”แƒ แƒ”แƒ‘แƒ–แƒ” แƒขแƒ”แƒฅแƒกแƒขแƒฃแƒ แƒ˜ แƒ’แƒแƒ แƒกแƒ˜แƒ˜แƒ—.

แƒ˜แƒœแƒกแƒžแƒ”แƒฅแƒขแƒ˜แƒ แƒ”แƒ‘แƒ แƒ˜แƒฌแƒงแƒ”แƒ‘แƒ แƒกแƒ™แƒ แƒ˜แƒžแƒขแƒ˜แƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ˜แƒ— bin/inspect.sh IDEA แƒ˜แƒœแƒกแƒขแƒแƒšแƒแƒชแƒ˜แƒ˜แƒก แƒ“แƒ˜แƒ แƒ”แƒฅแƒขแƒแƒ แƒ˜แƒแƒ“แƒแƒœ. แƒกแƒแƒญแƒ˜แƒ แƒ แƒžแƒแƒ แƒแƒ›แƒ”แƒขแƒ แƒ”แƒ‘แƒ˜แƒ:

  • แƒกแƒ แƒฃแƒšแƒ˜ แƒ’แƒ–แƒ แƒžแƒ แƒแƒ”แƒฅแƒขแƒ˜แƒกแƒ™แƒ”แƒœ (แƒœแƒแƒ—แƒ”แƒกแƒแƒ•แƒ˜ แƒแƒ  แƒแƒ แƒ˜แƒก แƒ›แƒฎแƒแƒ แƒ“แƒแƒญแƒ”แƒ แƒ˜แƒšแƒ˜),
  • แƒ’แƒ–แƒ .xml แƒคแƒแƒ˜แƒšแƒ˜แƒก แƒ˜แƒœแƒกแƒžแƒ”แƒฅแƒขแƒ˜แƒ แƒ”แƒ‘แƒ˜แƒก แƒžแƒแƒ แƒแƒ›แƒ”แƒขแƒ แƒ”แƒ‘แƒ˜แƒ— (แƒฉแƒ•แƒ”แƒฃแƒšแƒ”แƒ‘แƒ แƒ˜แƒ•, แƒ›แƒ“แƒ”แƒ‘แƒแƒ แƒ”แƒแƒ‘แƒก แƒžแƒ แƒแƒ”แƒฅแƒขแƒ˜แƒก แƒจแƒ˜แƒ’แƒœแƒ˜แƒ— .idea/inspectionProfiles/Project_Default.xml)
  • แƒกแƒ แƒฃแƒšแƒ˜ แƒ’แƒ–แƒ แƒกแƒแƒฅแƒแƒฆแƒแƒšแƒ“แƒ”แƒจแƒ˜, แƒ แƒแƒ›แƒ”แƒšแƒจแƒ˜แƒช แƒจแƒ”แƒ˜แƒœแƒแƒฎแƒ”แƒ‘แƒ .xml แƒคแƒแƒ˜แƒšแƒ”แƒ‘แƒ˜ แƒแƒœแƒแƒšแƒ˜แƒ–แƒ˜แƒก แƒจแƒ”แƒ“แƒ”แƒ’แƒ”แƒ‘แƒ˜แƒก แƒจแƒ”แƒกแƒแƒฎแƒ”แƒ‘ แƒ›แƒแƒฎแƒกแƒ”แƒœแƒ”แƒ‘แƒ”แƒ‘แƒ˜แƒ—.

แƒ’แƒแƒ แƒ“แƒ แƒแƒ›แƒ˜แƒกแƒ, แƒ›แƒแƒกแƒแƒšแƒแƒ“แƒœแƒ”แƒšแƒ˜แƒ, แƒ แƒแƒ›

  • แƒ’แƒ–แƒ Java SDK-แƒ›แƒ“แƒ” แƒ™แƒแƒœแƒคแƒ˜แƒ’แƒฃแƒ แƒ˜แƒ แƒ”แƒ‘แƒฃแƒšแƒ˜ แƒ˜แƒฅแƒœแƒ”แƒ‘แƒ IDE-แƒจแƒ˜, แƒฌแƒ˜แƒœแƒแƒแƒฆแƒ›แƒ“แƒ”แƒ’ แƒจแƒ”แƒ›แƒ—แƒฎแƒ•แƒ”แƒ•แƒแƒจแƒ˜ แƒแƒœแƒแƒšแƒ˜แƒ–แƒ˜ แƒแƒ  แƒ˜แƒ›แƒฃแƒจแƒแƒ•แƒ”แƒ‘แƒก. แƒ”แƒก แƒžแƒแƒ แƒแƒ›แƒ”แƒขแƒ แƒ”แƒ‘แƒ˜ แƒจแƒ”แƒ˜แƒชแƒแƒ•แƒก แƒ™แƒแƒœแƒคแƒ˜แƒ’แƒฃแƒ แƒแƒชแƒ˜แƒ˜แƒก แƒคแƒแƒ˜แƒšแƒก jdk.table.xml IDEA แƒ’แƒšแƒแƒ‘แƒแƒšแƒฃแƒ แƒ˜ แƒ™แƒแƒœแƒคแƒ˜แƒ’แƒฃแƒ แƒแƒชแƒ˜แƒ˜แƒก แƒกแƒแƒฅแƒแƒฆแƒแƒšแƒ“แƒ”แƒจแƒ˜. IDEA แƒ’แƒšแƒแƒ‘แƒแƒšแƒฃแƒ แƒ˜ แƒ™แƒแƒœแƒคแƒ˜แƒ’แƒฃแƒ แƒแƒชแƒ˜แƒ แƒœแƒแƒ’แƒฃแƒšแƒ˜แƒกแƒฎแƒ›แƒ”แƒ•แƒแƒ“ แƒ›แƒ“แƒ”แƒ‘แƒแƒ แƒ”แƒแƒ‘แƒก แƒ›แƒแƒ›แƒฎแƒ›แƒแƒ แƒ”แƒ‘แƒšแƒ˜แƒก แƒ›แƒ—แƒแƒ•แƒแƒ  แƒ“แƒ˜แƒ แƒ”แƒฅแƒขแƒแƒ แƒ˜แƒแƒจแƒ˜, แƒ›แƒแƒ’แƒ แƒแƒ› แƒ”แƒก แƒ›แƒ“แƒ”แƒ‘แƒแƒ แƒ”แƒแƒ‘แƒ แƒจแƒ”แƒ˜แƒซแƒšแƒ”แƒ‘แƒ แƒชแƒแƒšแƒกแƒแƒฎแƒแƒ“ แƒ“แƒแƒ–แƒฃแƒกแƒขแƒ“แƒ”แƒก แƒคแƒแƒ˜แƒšแƒจแƒ˜ idea.properties.
  • แƒ’แƒแƒแƒœแƒแƒšแƒ˜แƒ–แƒ”แƒ‘แƒฃแƒšแƒ˜ แƒžแƒ แƒแƒ”แƒฅแƒขแƒ˜ แƒฃแƒœแƒ“แƒ แƒ˜แƒงแƒแƒก IDEA-แƒก แƒ›แƒแƒฅแƒ›แƒ”แƒ“แƒ˜ แƒžแƒ แƒแƒ”แƒฅแƒขแƒ˜, แƒ แƒ˜แƒกแƒ—แƒ•แƒ˜แƒกแƒแƒช แƒ›แƒแƒ’แƒ˜แƒฌแƒ”แƒ•แƒ— แƒ แƒแƒ›แƒ“แƒ”แƒœแƒ˜แƒ›แƒ” แƒคแƒแƒ˜แƒšแƒ˜แƒก แƒฉแƒแƒ‘แƒแƒ แƒ”แƒ‘แƒ, แƒ แƒแƒ›แƒšแƒ”แƒ‘แƒ˜แƒช แƒฉแƒ•แƒ”แƒฃแƒšแƒ”แƒ‘แƒ แƒ˜แƒ• แƒ˜แƒ’แƒœแƒแƒ แƒ˜แƒ แƒ”แƒ‘แƒฃแƒšแƒ˜แƒ แƒ•แƒ”แƒ แƒกแƒ˜แƒ˜แƒก แƒ™แƒแƒœแƒขแƒ แƒแƒšแƒ˜แƒกแƒ—แƒ•แƒ˜แƒก, แƒ™แƒ”แƒ แƒซแƒแƒ“:
    • .idea/inspectionProfiles/Project_Default.xml - แƒแƒœแƒแƒšแƒ˜แƒ–แƒแƒขแƒแƒ แƒ˜แƒก แƒžแƒแƒ แƒแƒ›แƒ”แƒขแƒ แƒ”แƒ‘แƒ˜, แƒ˜แƒกแƒ˜แƒœแƒ˜ แƒแƒจแƒ™แƒแƒ แƒแƒ“ แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒฃแƒšแƒ˜ แƒ˜แƒฅแƒœแƒ”แƒ‘แƒ แƒ™แƒแƒœแƒขแƒ”แƒ˜แƒœแƒ”แƒ แƒจแƒ˜ แƒ˜แƒœแƒกแƒžแƒ”แƒฅแƒขแƒ˜แƒ แƒ”แƒ‘แƒ˜แƒก แƒ“แƒ แƒแƒก,
    • .idea/modules.xml - แƒฌแƒ˜แƒœแƒแƒแƒฆแƒ›แƒ“แƒ”แƒ’ แƒจแƒ”แƒ›แƒ—แƒฎแƒ•แƒ”แƒ•แƒแƒจแƒ˜ แƒ›แƒ˜แƒ•แƒ˜แƒฆแƒ”แƒ‘แƒ— แƒจแƒ”แƒชแƒ“แƒแƒ›แƒแƒก "แƒ”แƒก แƒžแƒ แƒแƒ”แƒฅแƒขแƒ˜ แƒแƒ  แƒจแƒ”แƒ˜แƒชแƒแƒ•แƒก แƒ›แƒแƒ“แƒฃแƒšแƒ”แƒ‘แƒก",
    • .idea/misc.xml - แƒฌแƒ˜แƒœแƒแƒแƒฆแƒ›แƒ“แƒ”แƒ’ แƒจแƒ”แƒ›แƒ—แƒฎแƒ•แƒ”แƒ•แƒแƒจแƒ˜ แƒฉแƒ•แƒ”แƒœ แƒ›แƒ˜แƒ•แƒ˜แƒฆแƒ”แƒ‘แƒ— แƒจแƒ”แƒชแƒ“แƒแƒ›แƒแƒก "JDK แƒแƒ  แƒแƒ แƒ˜แƒก แƒกแƒฌแƒแƒ แƒแƒ“ แƒ™แƒแƒœแƒคแƒ˜แƒ’แƒฃแƒ แƒ˜แƒ แƒ”แƒ‘แƒฃแƒšแƒ˜ แƒแƒ› แƒžแƒ แƒแƒ”แƒฅแƒขแƒ˜แƒกแƒ—แƒ•แƒ˜แƒก",
    • *.iml-ั„ะฐะนะปั‹ โ€” แƒฌแƒ˜แƒœแƒแƒแƒฆแƒ›แƒ“แƒ”แƒ’ แƒจแƒ”แƒ›แƒ—แƒฎแƒ•แƒ”แƒ•แƒแƒจแƒ˜ แƒฉแƒ•แƒ”แƒœ แƒ›แƒ˜แƒ•แƒ˜แƒฆแƒ”แƒ‘แƒ— แƒจแƒ”แƒชแƒ“แƒแƒ›แƒแƒก แƒ›แƒแƒ“แƒฃแƒšแƒจแƒ˜ แƒแƒ แƒแƒ™แƒแƒœแƒคแƒ˜แƒ’แƒฃแƒ แƒ˜แƒ แƒ”แƒ‘แƒฃแƒšแƒ˜ JDK-แƒ˜แƒก แƒจแƒ”แƒกแƒแƒฎแƒ”แƒ‘.

แƒ›แƒ˜แƒฃแƒฎแƒ”แƒ“แƒแƒ•แƒแƒ“ แƒ˜แƒ›แƒ˜แƒกแƒ, แƒ แƒแƒ› แƒ”แƒก แƒคแƒแƒ˜แƒšแƒ”แƒ‘แƒ˜ แƒฉแƒ•แƒ”แƒฃแƒšแƒ”แƒ‘แƒ แƒ˜แƒ• แƒจแƒ”แƒ“แƒ˜แƒก .gitignore, แƒ˜แƒกแƒ˜แƒœแƒ˜ แƒแƒ  แƒจแƒ”แƒ˜แƒชแƒแƒ•แƒก แƒ แƒแƒ˜แƒ›แƒ” แƒกแƒžแƒ”แƒชแƒ˜แƒคแƒ˜แƒ™แƒฃแƒ  แƒ˜แƒœแƒคแƒแƒ แƒ›แƒแƒชแƒ˜แƒแƒก แƒ™แƒแƒœแƒ™แƒ แƒ”แƒขแƒฃแƒšแƒ˜ แƒ“แƒ”แƒ•แƒ”แƒšแƒแƒžแƒ”แƒ แƒ˜แƒก แƒ’แƒแƒ แƒ”แƒ›แƒแƒกแƒ—แƒ•แƒ˜แƒก - แƒ’แƒแƒœแƒกแƒฎแƒ•แƒแƒ•แƒ”แƒ‘แƒ˜แƒ—, แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒแƒ“, แƒคแƒแƒ˜แƒšแƒ˜แƒกแƒ’แƒแƒœ workspace.xml, แƒกแƒแƒ“แƒแƒช แƒแƒกแƒ”แƒ—แƒ˜ แƒ˜แƒœแƒคแƒแƒ แƒ›แƒแƒชแƒ˜แƒแƒ แƒ“แƒ, แƒจแƒ”แƒกแƒแƒ‘แƒแƒ›แƒ˜แƒกแƒแƒ“, แƒแƒ  แƒแƒ แƒ˜แƒก แƒกแƒแƒญแƒ˜แƒ แƒ แƒ›แƒ˜แƒกแƒ˜ แƒฉแƒแƒ“แƒ”แƒœแƒ.

แƒแƒจแƒ™แƒแƒ แƒ แƒ’แƒแƒ›แƒแƒกแƒแƒ•แƒแƒšแƒ˜แƒ JDK-แƒ˜แƒก แƒจแƒ”แƒคแƒฃแƒ—แƒ•แƒ IDEA Community Edition-แƒ—แƒแƒœ แƒ”แƒ แƒ—แƒแƒ“ แƒ™แƒแƒœแƒขแƒ”แƒ˜แƒœแƒ”แƒ แƒจแƒ˜ แƒ˜แƒ› แƒคแƒแƒ แƒ›แƒ˜แƒ—, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒ›แƒ–แƒแƒ“ แƒ˜แƒฅแƒœแƒ”แƒ‘แƒ แƒแƒœแƒแƒšแƒ˜แƒ–แƒฃแƒ  แƒžแƒ แƒแƒ”แƒฅแƒขแƒ”แƒ‘แƒ–แƒ” โ€žแƒ’แƒแƒ›แƒแƒกแƒแƒขแƒแƒœแƒแƒ“โ€œ. แƒ›แƒแƒ“แƒ˜แƒ— แƒแƒ•แƒ˜แƒ แƒฉแƒ˜แƒแƒ— แƒจแƒ”แƒกแƒแƒคแƒ”แƒ แƒ˜แƒกแƒ˜ แƒ‘แƒแƒ–แƒ˜แƒก แƒ™แƒแƒœแƒขแƒ”แƒ˜แƒœแƒ”แƒ แƒ˜ แƒ“แƒ แƒ”แƒก แƒ˜แƒฅแƒœแƒ”แƒ‘แƒ แƒฉแƒ•แƒ”แƒœแƒ˜ Dockerfile:

dockerfile

FROM openkbs/ubuntu-bionic-jdk-mvn-py3

ARG INTELLIJ_VERSION="ideaIC-2019.1.1"

ARG INTELLIJ_IDE_TAR=${INTELLIJ_VERSION}.tar.gz

ENV IDEA_PROJECT_DIR="/var/project"

WORKDIR /opt

COPY jdk.table.xml /etc/idea/config/options/

RUN wget https://download-cf.jetbrains.com/idea/${INTELLIJ_IDE_TAR} && 
    tar xzf ${INTELLIJ_IDE_TAR} && 
    tar tzf ${INTELLIJ_IDE_TAR} | head -1 | sed -e 's//.*//' | xargs -I{} ln -s {} idea && 
    rm ${INTELLIJ_IDE_TAR} && 
    echo idea.config.path=/etc/idea/config >> idea/bin/idea.properties && 
    chmod -R 777 /etc/idea

CMD idea/bin/inspect.sh ${IDEA_PROJECT_DIR} ${IDEA_PROJECT_DIR}/.idea/inspectionProfiles/Project_Default.xml ${IDEA_PROJECT_DIR}/target/idea_inspections -v2

แƒ•แƒแƒ แƒ˜แƒแƒœแƒขแƒ˜แƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ idea.config.path แƒฉแƒ•แƒ”แƒœ แƒ•แƒแƒ˜แƒซแƒฃแƒšแƒ”แƒ— IDEA-แƒก แƒกแƒแƒฅแƒแƒฆแƒแƒšแƒ“แƒ”แƒจแƒ˜ แƒ›แƒแƒ”แƒซแƒ”แƒ‘แƒœแƒ แƒ›แƒ˜แƒกแƒ˜ แƒ’แƒšแƒแƒ‘แƒแƒšแƒฃแƒ แƒ˜ แƒ™แƒแƒœแƒคแƒ˜แƒ’แƒฃแƒ แƒแƒชแƒ˜แƒ /etc/idea, แƒ แƒแƒ“แƒ’แƒแƒœ แƒ›แƒแƒ›แƒฎแƒ›แƒแƒ แƒ”แƒ‘แƒšแƒ˜แƒก แƒกแƒแƒฎแƒšแƒ˜แƒก แƒกแƒแƒฅแƒแƒฆแƒแƒšแƒ“แƒ” CI-แƒจแƒ˜ แƒ›แƒฃแƒจแƒแƒแƒ‘แƒ˜แƒกแƒแƒก แƒ’แƒแƒฃแƒ แƒ™แƒ•แƒ”แƒ•แƒ”แƒšแƒ˜แƒ แƒ“แƒ แƒฎแƒจแƒ˜แƒ แƒแƒ“ แƒกแƒ แƒฃแƒšแƒ˜แƒแƒ“ แƒแƒ  แƒแƒ แƒกแƒ”แƒ‘แƒแƒ‘แƒก.

แƒแƒกแƒ” แƒ’แƒแƒ›แƒแƒ˜แƒงแƒฃแƒ แƒ”แƒ‘แƒ แƒ™แƒแƒœแƒขแƒ”แƒ˜แƒœแƒ”แƒ แƒจแƒ˜ แƒ“แƒแƒ™แƒแƒžแƒ˜แƒ แƒ”แƒ‘แƒฃแƒšแƒ˜ แƒคแƒแƒ˜แƒšแƒ˜: jdk.table.xml, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒจแƒ”แƒ˜แƒชแƒแƒ•แƒก แƒ™แƒแƒœแƒขแƒ”แƒ˜แƒœแƒ”แƒ แƒจแƒ˜ แƒ“แƒแƒ˜แƒœแƒกแƒขแƒแƒšแƒ˜แƒ แƒ”แƒ‘แƒฃแƒš OpenJDK-แƒ˜แƒก แƒ‘แƒ˜แƒšแƒ˜แƒ™แƒ”แƒ‘แƒก (แƒ›แƒกแƒ’แƒแƒ•แƒกแƒ˜ แƒคแƒแƒ˜แƒšแƒ˜ แƒ—แƒฅแƒ•แƒ”แƒœแƒ˜แƒ•แƒ” แƒ“แƒ˜แƒ แƒ”แƒฅแƒขแƒแƒ แƒ˜แƒแƒจแƒ˜ IDEA แƒžแƒแƒ แƒแƒ›แƒ”แƒขแƒ แƒ”แƒ‘แƒ˜แƒ— แƒจแƒ”แƒ˜แƒซแƒšแƒ”แƒ‘แƒ แƒ˜แƒฅแƒœแƒแƒก แƒ›แƒ˜แƒฆแƒ”แƒ‘แƒฃแƒšแƒ˜, แƒ แƒแƒ’แƒแƒ แƒช แƒกแƒแƒคแƒฃแƒซแƒ•แƒ”แƒšแƒ˜):

jdk.table.xml

<application>
 <component name="ProjectJdkTable">
   <jdk version="2">
     <name value="1.8" />
     <type value="JavaSDK" />
     <version value="1.8" />
     <homePath value="/usr/java" />
     <roots>
       <annotationsPath>
         <root type="composite">
           <root url="jar://$APPLICATION_HOME_DIR$/lib/jdkAnnotations.jar!/" type="simple" />
         </root>
       </annotationsPath>
       <classPath>
         <root type="composite">
           <root url="jar:///usr/java/jre/lib/charsets.jar!/" type="simple" />
           <root url="jar:///usr/java/jre/lib/deploy.jar!/" type="simple" />
           <root url="jar:///usr/java/jre/lib/ext/access-bridge-64.jar!/" type="simple" />
           <root url="jar:///usr/java/jre/lib/ext/cldrdata.jar!/" type="simple" />
           <root url="jar:///usr/java/jre/lib/ext/dnsns.jar!/" type="simple" />
           <root url="jar:///usr/java/jre/lib/ext/jaccess.jar!/" type="simple" />
           <root url="jar:///usr/java/jre/lib/ext/jfxrt.jar!/" type="simple" />
           <root url="jar:///usr/java/jre/lib/ext/localedata.jar!/" type="simple" />
           <root url="jar:///usr/java/jre/lib/ext/nashorn.jar!/" type="simple" />
           <root url="jar:///usr/java/jre/lib/ext/sunec.jar!/" type="simple" />
           <root url="jar:///usr/java/jre/lib/ext/sunjce_provider.jar!/" type="simple" />
           <root url="jar:///usr/java/jre/lib/ext/sunmscapi.jar!/" type="simple" />
           <root url="jar:///usr/java/jre/lib/ext/sunpkcs11.jar!/" type="simple" />
           <root url="jar:///usr/java/jre/lib/ext/zipfs.jar!/" type="simple" />
           <root url="jar:///usr/java/jre/lib/javaws.jar!/" type="simple" />
           <root url="jar:///usr/java/jre/lib/jce.jar!/" type="simple" />
           <root url="jar:///usr/java/jre/lib/jfr.jar!/" type="simple" />
           <root url="jar:///usr/java/jre/lib/jfxswt.jar!/" type="simple" />
           <root url="jar:///usr/java/jre/lib/jsse.jar!/" type="simple" />
           <root url="jar:///usr/java/jre/lib/management-agent.jar!/" type="simple" />
           <root url="jar:///usr/java/jre/lib/plugin.jar!/" type="simple" />
           <root url="jar:///usr/java/jre/lib/resources.jar!/" type="simple" />
           <root url="jar:///usr/java/jre/lib/rt.jar!/" type="simple" />
         </root>
       </classPath>
     </roots>
     <additional />
   </jdk>
 </component>
</application>

แƒ“แƒแƒกแƒ แƒฃแƒšแƒ”แƒ‘แƒฃแƒšแƒ˜ แƒกแƒฃแƒ แƒแƒ—แƒ˜ แƒฎแƒ”แƒšแƒ›แƒ˜แƒกแƒแƒฌแƒ•แƒ“แƒแƒ›แƒ˜แƒ Docker Hub-แƒ–แƒ”.

แƒกแƒแƒœแƒแƒ› แƒ’แƒแƒ“แƒแƒ•แƒ˜แƒ“แƒ”แƒ—, แƒ›แƒแƒ“แƒ˜แƒ— แƒจแƒ”แƒ•แƒแƒ›แƒแƒฌแƒ›แƒแƒ—, แƒ แƒแƒ› IDEA แƒแƒœแƒแƒšแƒ˜แƒ–แƒแƒขแƒแƒ แƒ˜ แƒ›แƒฃแƒจแƒแƒแƒ‘แƒก แƒ™แƒแƒœแƒขแƒ”แƒ˜แƒœแƒ”แƒ แƒจแƒ˜:

docker run --rm -v <ะฟัƒั‚ัŒ/ะบ/ะฒะฐัˆะตะผัƒ/ะฟั€ะพะตะบั‚ัƒ>:/var/project inponomarev/intellij-idea-analyzer

แƒแƒœแƒแƒšแƒ˜แƒ–แƒ˜ แƒฌแƒแƒ แƒ›แƒแƒขแƒ”แƒ‘แƒ˜แƒ— แƒฃแƒœแƒ“แƒ แƒฉแƒแƒขแƒแƒ แƒ“แƒ”แƒก แƒ“แƒ แƒ›แƒ แƒแƒ•แƒแƒšแƒ˜ .xml แƒคแƒแƒ˜แƒšแƒ˜ แƒแƒœแƒแƒšแƒ˜แƒ–แƒแƒขแƒแƒ แƒ˜แƒก แƒแƒœแƒ’แƒแƒ แƒ˜แƒจแƒ”แƒ‘แƒ˜แƒ— แƒฃแƒœแƒ“แƒ แƒ’แƒแƒ›แƒแƒฉแƒœแƒ“แƒ”แƒก target/idea_inspections แƒฅแƒ•แƒ”แƒกแƒแƒฅแƒแƒฆแƒแƒšแƒ“แƒ”แƒจแƒ˜.

แƒแƒฎแƒšแƒ แƒฃแƒ™แƒ•แƒ” แƒแƒฆแƒแƒ  แƒแƒ แƒ˜แƒก แƒ”แƒญแƒ•แƒ˜, แƒ แƒแƒ› IDEA แƒแƒœแƒแƒšแƒ˜แƒ–แƒแƒขแƒแƒ แƒ˜แƒก แƒ“แƒแƒ›แƒแƒฃแƒ™แƒ˜แƒ“แƒ”แƒ‘แƒšแƒแƒ“ แƒ’แƒแƒจแƒ•แƒ”แƒ‘แƒ แƒจแƒ”แƒกแƒแƒซแƒšแƒ”แƒ‘แƒ”แƒšแƒ˜แƒ แƒœแƒ”แƒ‘แƒ˜แƒกแƒ›แƒ˜แƒ”แƒ  CI แƒ’แƒแƒ แƒ”แƒ›แƒแƒจแƒ˜ แƒ“แƒ แƒฉแƒ•แƒ”แƒœ แƒ’แƒแƒ“แƒแƒ•แƒ“แƒ˜แƒ•แƒแƒ แƒ— แƒ›แƒ”แƒแƒ แƒ” แƒกแƒแƒคแƒ”แƒฎแƒฃแƒ แƒ–แƒ”.

แƒœแƒแƒ‘แƒ˜แƒฏแƒ˜ 2. แƒแƒœแƒ’แƒแƒ แƒ˜แƒจแƒ˜แƒก แƒฉแƒ•แƒ”แƒœแƒ”แƒ‘แƒ แƒ“แƒ แƒแƒœแƒแƒšแƒ˜แƒ–แƒ˜

แƒแƒœแƒ’แƒแƒ แƒ˜แƒจแƒ˜แƒก .xml แƒคแƒแƒ˜แƒšแƒ”แƒ‘แƒ˜แƒก แƒกแƒแƒฎแƒ˜แƒ— แƒ›แƒ˜แƒฆแƒ”แƒ‘แƒ แƒกแƒแƒฅแƒ›แƒ˜แƒก แƒœแƒแƒฎแƒ”แƒ•แƒแƒ แƒ˜แƒ; แƒแƒฎแƒšแƒ แƒ—แƒฅแƒ•แƒ”แƒœ แƒฃแƒœแƒ“แƒ แƒ’แƒแƒฎแƒแƒ“แƒแƒ— แƒ˜แƒก แƒแƒ“แƒแƒ›แƒ˜แƒแƒœแƒ˜แƒกแƒแƒ—แƒ•แƒ˜แƒก แƒฌแƒแƒกแƒแƒ™แƒ˜แƒ—แƒฎแƒแƒ“. แƒ“แƒ แƒแƒกแƒ”แƒ•แƒ”, แƒ›แƒ˜แƒกแƒ˜ แƒจแƒ”แƒ“แƒ”แƒ’แƒ”แƒ‘แƒ˜ แƒฃแƒœแƒ“แƒ แƒ˜แƒฅแƒœแƒแƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒฃแƒšแƒ˜ แƒฎแƒแƒ แƒ˜แƒกแƒฎแƒ˜แƒก แƒ™แƒแƒ แƒ˜แƒ‘แƒญแƒ”แƒ”แƒ‘แƒจแƒ˜ - แƒšแƒแƒ’แƒ˜แƒ™แƒ แƒ˜แƒ›แƒ˜แƒก แƒ“แƒแƒกแƒแƒ“แƒ’แƒ”แƒœแƒแƒ“, แƒ›แƒ˜แƒฆแƒ”แƒ‘แƒฃแƒšแƒ˜ แƒชแƒ•แƒšแƒ˜แƒšแƒ”แƒ‘แƒ แƒ’แƒแƒ“แƒ˜แƒก แƒ—แƒฃ แƒแƒ แƒ แƒฎแƒแƒ แƒ˜แƒกแƒฎแƒ˜แƒก แƒ™แƒ แƒ˜แƒขแƒ”แƒ แƒ˜แƒฃแƒ›แƒ”แƒ‘แƒ˜แƒก แƒ›แƒ˜แƒฎแƒ”แƒ“แƒ•แƒ˜แƒ—.

แƒ”แƒก แƒ“แƒแƒ’แƒ•แƒ”แƒฎแƒ›แƒแƒ แƒ”แƒ‘แƒ Jenkins Warnings NG Plugin, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒ’แƒแƒ›แƒแƒ•แƒ˜แƒ“แƒ 2019 แƒฌแƒšแƒ˜แƒก แƒ˜แƒแƒœแƒ•แƒแƒ แƒจแƒ˜. แƒ›แƒ˜แƒกแƒ˜ แƒ›แƒแƒกแƒ•แƒšแƒแƒกแƒ—แƒแƒœ แƒ”แƒ แƒ—แƒแƒ“, Jenkins-แƒจแƒ˜ แƒกแƒขแƒแƒขแƒ˜แƒ™แƒฃแƒ แƒ˜ แƒแƒœแƒแƒšแƒ˜แƒ–แƒ˜แƒก แƒจแƒ”แƒ“แƒ”แƒ’แƒ”แƒ‘แƒ—แƒแƒœ แƒ›แƒฃแƒจแƒแƒแƒ‘แƒ˜แƒก แƒ›แƒ แƒแƒ•แƒแƒšแƒ˜ แƒ˜แƒœแƒ“แƒ˜แƒ•แƒ˜แƒ“แƒฃแƒแƒšแƒฃแƒ แƒ˜ แƒ“แƒแƒœแƒแƒ›แƒแƒขแƒ˜ (CheckStyle, FindBugs, PMD แƒ“แƒ แƒ.แƒจ.) แƒแƒฎแƒšแƒ แƒ›แƒแƒœแƒ˜แƒจแƒœแƒฃแƒšแƒ˜แƒ, แƒ แƒแƒ’แƒแƒ แƒช แƒ›แƒแƒซแƒ•แƒ”แƒšแƒ”แƒ‘แƒฃแƒšแƒ˜.

แƒ›แƒแƒ“แƒฃแƒšแƒ˜ แƒจแƒ”แƒ“แƒ’แƒ”แƒ‘แƒ แƒแƒ แƒ˜ แƒœแƒแƒฌแƒ˜แƒšแƒ˜แƒกแƒ’แƒแƒœ:

  • แƒ›แƒ แƒแƒ•แƒแƒšแƒ˜ แƒแƒœแƒแƒšแƒ˜แƒ–แƒแƒขแƒแƒ แƒ˜แƒก แƒจแƒ”แƒขแƒงแƒแƒ‘แƒ˜แƒœแƒ”แƒ‘แƒ”แƒ‘แƒ˜แƒก แƒจแƒ”แƒ›แƒ’แƒ แƒแƒ•แƒ”แƒ‘แƒ”แƒšแƒ˜ (แƒกแƒ แƒฃแƒšแƒ˜ แƒกแƒ˜แƒ แƒ›แƒแƒ˜แƒชแƒแƒ•แƒก แƒ›แƒ”แƒชแƒœแƒ˜แƒ”แƒ แƒ”แƒ‘แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก แƒชแƒœแƒแƒ‘แƒ˜แƒš แƒงแƒ•แƒ”แƒšแƒ แƒแƒœแƒแƒšแƒ˜แƒ–แƒแƒขแƒแƒ แƒก AcuCobol-แƒ“แƒแƒœ ZPT Lint-แƒ›แƒ“แƒ”),
  • แƒ”แƒ แƒ—แƒ˜ แƒแƒœแƒ’แƒแƒ แƒ˜แƒจแƒ˜แƒก แƒ›แƒแƒงแƒฃแƒ แƒ”แƒ‘แƒ”แƒšแƒ˜ แƒงแƒ•แƒ”แƒšแƒ แƒ›แƒแƒ—แƒ’แƒแƒœแƒ˜แƒกแƒ—แƒ•แƒ˜แƒก.

แƒ˜แƒ› แƒœแƒ˜แƒ•แƒ—แƒ”แƒ‘แƒ˜แƒก แƒกแƒ˜แƒ, แƒ แƒแƒ›แƒ”แƒšแƒ—แƒ แƒ’แƒแƒแƒœแƒแƒšแƒ˜แƒ–แƒ”แƒ‘แƒแƒช Warnings NG-แƒก แƒจแƒ”แƒฃแƒซแƒšแƒ˜แƒ, แƒ›แƒแƒ˜แƒชแƒแƒ•แƒก แƒ’แƒแƒคแƒ แƒ—แƒฎแƒ˜แƒšแƒ”แƒ‘แƒ”แƒ‘แƒก Java แƒจแƒ”แƒ›แƒ“แƒ’แƒ”แƒœแƒšแƒ˜แƒกแƒ’แƒแƒœ แƒ“แƒ แƒ’แƒแƒคแƒ แƒ—แƒฎแƒ˜แƒšแƒ”แƒ‘แƒ”แƒ‘แƒก Maven-แƒ˜แƒก แƒจแƒ”แƒกแƒ แƒฃแƒšแƒ”แƒ‘แƒ˜แƒก แƒŸแƒฃแƒ แƒœแƒแƒšแƒ”แƒ‘แƒ˜แƒ“แƒแƒœ: แƒ›แƒ˜แƒฃแƒฎแƒ”แƒ“แƒแƒ•แƒแƒ“ แƒ˜แƒ›แƒ˜แƒกแƒ, แƒ แƒแƒ› แƒ˜แƒกแƒ˜แƒœแƒ˜ แƒ›แƒฃแƒ“แƒ›แƒ˜แƒ•แƒแƒ“ แƒฉแƒแƒœแƒก, แƒ˜แƒกแƒ˜แƒœแƒ˜ แƒ˜แƒจแƒ•แƒ˜แƒแƒ—แƒแƒ“ แƒแƒแƒœแƒแƒšแƒ˜แƒ–แƒ”แƒ‘แƒ”แƒœ แƒกแƒžแƒ”แƒชแƒ˜แƒแƒšแƒฃแƒ แƒแƒ“. IntelliJ IDEA แƒแƒœแƒ’แƒแƒ แƒ˜แƒจแƒ”แƒ‘แƒ˜ แƒแƒกแƒ”แƒ•แƒ” แƒจแƒ”แƒ“แƒ˜แƒก แƒแƒฆแƒ˜แƒแƒ แƒ”แƒ‘แƒฃแƒšแƒ˜ แƒคแƒแƒ แƒ›แƒแƒขแƒ”แƒ‘แƒ˜แƒก แƒกแƒ˜แƒแƒจแƒ˜.

แƒ•แƒ˜แƒœแƒแƒ˜แƒ“แƒแƒœ แƒ›แƒแƒ“แƒฃแƒšแƒ˜ แƒแƒฎแƒแƒšแƒ˜แƒ, แƒ˜แƒก แƒ—แƒแƒ•แƒ“แƒแƒžแƒ˜แƒ แƒ•แƒ”แƒšแƒแƒ“ แƒ™แƒแƒ แƒ’แƒแƒ“ แƒฃแƒ แƒ—แƒ˜แƒ”แƒ แƒ—แƒแƒ‘แƒก Jenkins Pipeline-แƒ—แƒแƒœ. แƒ›แƒ˜แƒกแƒ˜ แƒ›แƒแƒœแƒแƒฌแƒ˜แƒšแƒ”แƒแƒ‘แƒ˜แƒ— แƒ›แƒจแƒ”แƒœแƒ”แƒ‘แƒšแƒแƒ‘แƒ˜แƒก แƒ”แƒขแƒแƒžแƒ˜ แƒแƒกแƒ” แƒ’แƒแƒ›แƒแƒ˜แƒงแƒฃแƒ แƒ”แƒ‘แƒ (แƒฉแƒ•แƒ”แƒœ แƒฃแƒ‘แƒ แƒแƒšแƒแƒ“ แƒ•แƒ”แƒฃแƒ‘แƒœแƒ”แƒ‘แƒ˜แƒ— แƒ“แƒแƒœแƒแƒ›แƒแƒขแƒก, แƒ—แƒฃ แƒ แƒ แƒ›แƒแƒฎแƒกแƒ”แƒœแƒ”แƒ‘แƒ˜แƒก แƒคแƒแƒ แƒ›แƒแƒขแƒก แƒ•แƒชแƒœแƒแƒ‘แƒ— แƒ“แƒ แƒ แƒ แƒคแƒแƒ˜แƒšแƒ”แƒ‘แƒ˜ แƒฃแƒœแƒ“แƒ แƒ“แƒแƒแƒกแƒ™แƒแƒœแƒ˜แƒ แƒ“แƒ”แƒก):

stage ('Static analysis'){
    sh 'rm -rf target/idea_inspections'
    docker.image('inponomarev/intellij-idea-analyzer').inside {
       sh '/opt/idea/bin/inspect.sh $WORKSPACE $WORKSPACE/.idea/inspectionProfiles/Project_Default.xml $WORKSPACE/target/idea_inspections -v2'
    }
    recordIssues(
       tools: [ideaInspection(pattern: 'target/idea_inspections/*.xml')]
    )
}

แƒ›แƒแƒฎแƒกแƒ”แƒœแƒ”แƒ‘แƒ˜แƒก แƒ˜แƒœแƒขแƒ”แƒ แƒคแƒ”แƒ˜แƒกแƒ˜ แƒแƒกแƒ” แƒ’แƒแƒ›แƒแƒ˜แƒงแƒฃแƒ แƒ”แƒ‘แƒ:

แƒ›แƒ˜แƒ›แƒ“แƒ˜แƒœแƒแƒ แƒ”แƒแƒ‘แƒก IntelliJ IDEA แƒ˜แƒœแƒกแƒžแƒ”แƒฅแƒขแƒ˜แƒ แƒ”แƒ‘แƒ แƒฏแƒ”แƒœแƒ™แƒ˜แƒœแƒกแƒ–แƒ”

แƒ›แƒแƒฎแƒ”แƒ แƒฎแƒ”แƒ‘แƒฃแƒšแƒแƒ“, แƒ”แƒก แƒ˜แƒœแƒขแƒ”แƒ แƒคแƒ”แƒ˜แƒกแƒ˜ แƒฃแƒœแƒ˜แƒ•แƒ”แƒ แƒกแƒแƒšแƒฃแƒ แƒ˜แƒ แƒงแƒ•แƒ”แƒšแƒ แƒแƒฆแƒ˜แƒแƒ แƒ”แƒ‘แƒฃแƒšแƒ˜ แƒแƒœแƒแƒšแƒ˜แƒ–แƒแƒขแƒแƒ แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก. แƒ˜แƒ’แƒ˜ แƒจแƒ”แƒ˜แƒชแƒแƒ•แƒก แƒžแƒแƒ•แƒœแƒ˜แƒก แƒ™แƒแƒขแƒ”แƒ’แƒแƒ แƒ˜แƒ”แƒ‘แƒ˜แƒก แƒ›แƒ˜แƒฎแƒ”แƒ“แƒ•แƒ˜แƒ— แƒ’แƒแƒœแƒแƒฌแƒ˜แƒšแƒ”แƒ‘แƒ˜แƒก แƒ˜แƒœแƒขแƒ”แƒ แƒแƒฅแƒขแƒ˜แƒฃแƒš แƒ“แƒ˜แƒแƒ’แƒ แƒแƒ›แƒแƒก แƒ“แƒ แƒแƒฆแƒ›แƒแƒฉแƒ”แƒœแƒ”แƒ‘แƒ˜แƒก แƒ แƒแƒแƒ“แƒ”แƒœแƒแƒ‘แƒ˜แƒก แƒชแƒ•แƒšแƒ˜แƒšแƒ”แƒ‘แƒ”แƒ‘แƒ˜แƒก แƒ“แƒ˜แƒœแƒแƒ›แƒ˜แƒ™แƒ˜แƒก แƒ’แƒ แƒแƒคแƒ˜แƒ™แƒก. แƒ—แƒฅแƒ•แƒ”แƒœ แƒจแƒ”แƒ’แƒ˜แƒซแƒšแƒ˜แƒแƒ— แƒ’แƒแƒœแƒแƒฎแƒแƒ แƒชแƒ˜แƒ”แƒšแƒแƒ— แƒกแƒฌแƒ แƒแƒคแƒ˜ แƒซแƒ”แƒ‘แƒœแƒ แƒ’แƒ•แƒ”แƒ แƒ“แƒ˜แƒก แƒ‘แƒแƒšแƒแƒจแƒ˜ แƒแƒ แƒกแƒ”แƒ‘แƒฃแƒš แƒ‘แƒแƒ“แƒ”แƒจแƒ˜. แƒ”แƒ แƒ—แƒแƒ“แƒ”แƒ แƒ—แƒ˜, แƒ แƒแƒช แƒแƒ  แƒ›แƒฃแƒจแƒแƒแƒ‘แƒ“แƒ แƒกแƒฌแƒแƒ แƒแƒ“ IDEA แƒ˜แƒœแƒกแƒžแƒ”แƒฅแƒขแƒ˜แƒ แƒ”แƒ‘แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก, แƒ˜แƒงแƒ แƒ™แƒแƒ“แƒ˜แƒก แƒžแƒ˜แƒ แƒ“แƒแƒžแƒ˜แƒ  แƒฏแƒ”แƒœแƒ™แƒ˜แƒœแƒกแƒจแƒ˜ แƒ“แƒแƒ—แƒ•แƒแƒšแƒ˜แƒ”แƒ แƒ”แƒ‘แƒ˜แƒก แƒจแƒ”แƒกแƒแƒซแƒšแƒ”แƒ‘แƒšแƒแƒ‘แƒ (แƒ—แƒฃแƒ›แƒชแƒ แƒกแƒฎแƒ•แƒ แƒ›แƒแƒฎแƒกแƒ”แƒœแƒ”แƒ‘แƒ”แƒ‘แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก, แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒแƒ“ Checkstyle, แƒแƒ› แƒ“แƒแƒœแƒแƒ›แƒแƒขแƒก แƒจแƒ”แƒฃแƒซแƒšแƒ˜แƒ แƒแƒ›แƒ˜แƒก แƒ’แƒแƒ™แƒ”แƒ—แƒ”แƒ‘แƒ แƒšแƒแƒ›แƒแƒ–แƒแƒ“). แƒ แƒแƒ’แƒแƒ แƒช แƒฉแƒแƒœแƒก, แƒ”แƒก แƒแƒ แƒ˜แƒก IDEA แƒแƒœแƒ’แƒแƒ แƒ˜แƒจแƒ˜แƒก แƒžแƒแƒ แƒกแƒ”แƒ แƒ˜แƒก แƒจแƒ”แƒชแƒ“แƒแƒ›แƒ, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒฃแƒœแƒ“แƒ แƒ’แƒแƒ›แƒแƒกแƒฌแƒแƒ แƒ“แƒ”แƒก.

Warnings NG-แƒ˜แƒก แƒ›แƒแƒฎแƒแƒกแƒ˜แƒแƒ—แƒ”แƒ‘แƒšแƒ”แƒ‘แƒก แƒจแƒแƒ แƒ˜แƒก แƒแƒ แƒ˜แƒก แƒกแƒฎแƒ•แƒแƒ“แƒแƒกแƒฎแƒ•แƒ แƒฌแƒงแƒแƒ แƒแƒ“แƒแƒœ แƒ›แƒ˜แƒฆแƒ”แƒ‘แƒฃแƒšแƒ˜ แƒ“แƒแƒกแƒ™แƒ•แƒœแƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒ”แƒ แƒ—แƒ˜แƒแƒœแƒ”แƒ‘แƒ˜แƒก แƒจแƒ”แƒกแƒแƒซแƒšแƒ”แƒ‘แƒšแƒแƒ‘แƒ แƒ”แƒ แƒ— แƒแƒœแƒ’แƒแƒ แƒ˜แƒจแƒจแƒ˜ แƒ“แƒ Quality Gates-แƒ˜แƒก แƒžแƒ แƒแƒ’แƒ แƒแƒ›แƒแƒจแƒ˜, แƒ›แƒแƒ— แƒจแƒแƒ แƒ˜แƒก, แƒกแƒแƒชแƒœแƒแƒ‘แƒแƒ แƒ แƒแƒกแƒแƒ›แƒ‘แƒšแƒ”แƒ˜แƒก โ€žแƒ แƒแƒขแƒฉแƒ˜โ€œ. แƒ–แƒแƒ’แƒ˜แƒ”แƒ แƒ—แƒ˜ Quality Gates แƒžแƒ แƒแƒ’แƒ แƒแƒ›แƒ˜แƒ แƒ”แƒ‘แƒ˜แƒก แƒ“แƒแƒ™แƒฃแƒ›แƒ”แƒœแƒขแƒแƒชแƒ˜แƒ แƒฎแƒ”แƒšแƒ›แƒ˜แƒกแƒแƒฌแƒ•แƒ“แƒแƒ›แƒ˜แƒ แƒแƒฅ - แƒ—แƒฃแƒ›แƒชแƒ, แƒ”แƒก แƒแƒ  แƒแƒ แƒ˜แƒก แƒ“แƒแƒกแƒ แƒฃแƒšแƒ”แƒ‘แƒฃแƒšแƒ˜ แƒ“แƒ แƒ—แƒฅแƒ•แƒ”แƒœ แƒฃแƒœแƒ“แƒ แƒ’แƒแƒ“แƒแƒฎแƒ”แƒ“แƒแƒ— แƒฌแƒงแƒแƒ แƒแƒก แƒ™แƒแƒ“แƒก. แƒ›แƒ”แƒแƒ แƒ”แƒก แƒ›แƒฎแƒ แƒ˜แƒ•, แƒกแƒ แƒฃแƒšแƒ˜ แƒ™แƒแƒœแƒขแƒ แƒแƒšแƒ˜แƒกแƒ—แƒ•แƒ˜แƒก แƒ˜แƒ›แƒแƒ–แƒ”, แƒ แƒแƒช แƒฎแƒ“แƒ”แƒ‘แƒ, "แƒ แƒแƒฉแƒ”แƒขแƒ˜" แƒจแƒ”แƒ˜แƒซแƒšแƒ”แƒ‘แƒ แƒ“แƒแƒ›แƒแƒฃแƒ™แƒ˜แƒ“แƒ”แƒ‘แƒšแƒแƒ“ แƒ’แƒแƒœแƒฎแƒแƒ แƒชแƒ˜แƒ”แƒšแƒ“แƒ”แƒก (แƒ˜แƒฎ. แƒฌแƒ˜แƒœแƒ แƒžแƒแƒกแƒขแƒ˜ แƒแƒ› แƒ—แƒ”แƒ›แƒ˜แƒก แƒจแƒ”แƒกแƒแƒฎแƒ”แƒ‘).

แƒ“แƒแƒกแƒ™แƒ•แƒœแƒ

แƒกแƒแƒœแƒแƒ› แƒแƒ› แƒ›แƒแƒกแƒแƒšแƒ˜แƒก แƒ›แƒแƒ›แƒ–แƒแƒ“แƒ”แƒ‘แƒแƒก แƒ“แƒแƒ•แƒ˜แƒฌแƒงแƒ”แƒ‘แƒ“แƒ˜, แƒ’แƒแƒ“แƒแƒ•แƒฌแƒงแƒ•แƒ˜แƒขแƒ” แƒ›แƒแƒซแƒ”แƒ‘แƒœแƒ: แƒฐแƒแƒ‘แƒ แƒ”แƒ–แƒ” แƒฃแƒ™แƒ•แƒ” แƒ•แƒ˜แƒœแƒ›แƒ”แƒ› แƒ“แƒแƒฌแƒ”แƒ แƒ แƒแƒ› แƒ—แƒ”แƒ›แƒแƒ–แƒ”? แƒ›แƒฎแƒแƒšแƒแƒ“ แƒ•แƒ˜แƒžแƒแƒ•แƒ” แƒ˜แƒœแƒขแƒ”แƒ แƒ•แƒ˜แƒฃ 2017 แƒฌ ั แƒšแƒแƒœแƒ˜แƒกแƒแƒ“แƒแƒช แƒ˜แƒก แƒแƒ›แƒ‘แƒแƒ‘แƒก:

แƒ แƒแƒ›แƒ“แƒ”แƒœแƒแƒ“แƒแƒช แƒ›แƒ” แƒ•แƒ˜แƒชแƒ˜, แƒแƒ  แƒแƒ แƒ˜แƒก แƒ˜แƒœแƒขแƒ”แƒ’แƒ แƒแƒชแƒ˜แƒ แƒฏแƒ”แƒœแƒ™แƒ˜แƒœแƒกแƒ—แƒแƒœ แƒแƒœ maven แƒ“แƒแƒœแƒแƒ›แƒแƒขแƒ—แƒแƒœ [...] แƒžแƒ แƒ˜แƒœแƒชแƒ˜แƒžแƒจแƒ˜, แƒœแƒ”แƒ‘แƒ˜แƒกแƒ›แƒ˜แƒ”แƒ  แƒ”แƒœแƒ—แƒฃแƒ–แƒ˜แƒแƒกแƒขแƒก แƒจแƒ”แƒฃแƒซแƒšแƒ˜แƒ แƒ“แƒแƒฃแƒ›แƒ”แƒ’แƒแƒ‘แƒ แƒ“แƒ”แƒก IDEA Community Edition-แƒกแƒ แƒ“แƒ Jenkins-แƒก, แƒ‘แƒ”แƒ•แƒ แƒ˜ แƒแƒ›แƒ˜แƒ— แƒ›แƒฎแƒแƒšแƒแƒ“ แƒ˜แƒกแƒแƒ แƒ’แƒ”แƒ‘แƒšแƒ”แƒ‘แƒก.

แƒแƒ แƒ˜ แƒฌแƒšแƒ˜แƒก แƒจแƒ”แƒ›แƒ“แƒ”แƒ’ แƒฉแƒ•แƒ”แƒœ แƒ’แƒ•แƒแƒฅแƒ•แƒก Warnings NG Plugin แƒ“แƒ แƒกแƒแƒ‘แƒแƒšแƒแƒแƒ“ แƒ”แƒก แƒ›แƒ”แƒ’แƒแƒ‘แƒ แƒแƒ‘แƒ แƒจแƒ”แƒกแƒ แƒฃแƒšแƒ“แƒ!

แƒฌแƒงแƒแƒ แƒ: www.habr.com

แƒแƒฎแƒแƒšแƒ˜ แƒ™แƒแƒ›แƒ”แƒœแƒขแƒแƒ แƒ˜แƒก แƒ“แƒแƒ›แƒแƒขแƒ”แƒ‘แƒ