IntelliJ IDEA рдореЗрдВ рдЖрдЬ рд╕рдмрд╕реЗ рдЙрдиреНрдирдд рд╕реНрдереИрддрд┐рдХ рдЬрд╛рд╡рд╛ рдХреЛрдб рд╡рд┐рд╢реНрд▓реЗрд╖рдХ рд╣реИ, рдЬрд┐рд╕рдиреЗ рдЕрдкрдиреА рдХреНрд╖рдорддрд╛рдУрдВ рдореЗрдВ рдЪреЗрдХрд╕реНрдЯрд╛рдЗрд▓ рдФрд░ рд╕реНрдкреЙрдЯрдмрдЧреНрд╕ рдЬреИрд╕реЗ "рджрд┐рдЧреНрдЧрдЬреЛрдВ" рдХреЛ рдмрд╣реБрдд рдкреАрдЫреЗ рдЫреЛрдбрд╝ рджрд┐рдпрд╛ рд╣реИред рдЗрд╕рдХреЗ рдХрдИ "рдирд┐рд░реАрдХреНрд╖рдг" рдХреЛрдбрд┐рдВрдЧ рд╢реИрд▓реА рд╕реЗ рд▓реЗрдХрд░ рд╡рд┐рд╢реЗрд╖рддрд╛ рдХреАрдбрд╝реЗ рддрдХ рд╡рд┐рднрд┐рдиреНрди рдкрд╣рд▓реБрдУрдВ рдореЗрдВ рдХреЛрдб рдХреА рдЬрд╛рдВрдЪ рдХрд░рддреЗ рд╣реИрдВред
рд╣рд╛рд▓рд╛рдВрдХрд┐, рдЬрдмрдХрд┐ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдкрд░рд┐рдгрд╛рдо рдХреЗрд╡рд▓ рдбреЗрд╡рд▓рдкрд░ рдЖрдИрдбреАрдИ рдХреЗ рд╕реНрдерд╛рдиреАрдп рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдореЗрдВ рдкреНрд░рджрд░реНрд╢рд┐рдд рд╣реЛрддреЗ рд╣реИрдВ, рд╡реЗ рд╡рд┐рдХрд╛рд╕ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдХрдо рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред рд╡рд┐рдзрд╛рдирд╕рднрд╛ рдкрд╛рдЗрдк рд▓рд╛рдЗрди рдХреЗ рдкрд╣рд▓реЗ рдЪрд░рдг рдХреЗ рд░реВрдк рдореЗрдВ рд╕реНрдереИрддрд┐рдХ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП , рдЗрд╕рдХреЗ рдкрд░рд┐рдгрд╛рдореЛрдВ рдХреЛ рдЧреБрдгрд╡рддреНрддрд╛ рджреНрд╡рд╛рд░ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП, рдФрд░ рдпрджрд┐ рдЧреБрдгрд╡рддреНрддрд╛ рджреНрд╡рд╛рд░ рдкрд╛рд░рд┐рдд рдирд╣реАрдВ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ рддреЛ рд╡рд┐рдзрд╛рдирд╕рднрд╛ рдХреЛ рд╡рд┐рдлрд▓ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред TeamCity CI рдХреЛ IDEA рдХреЗ рд╕рд╛рде рдПрдХреАрдХреГрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рднрд▓реЗ рд╣реА рдЖрдк TeamCity рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░ рд░рд╣реЗ рд╣реЛрдВ, рдЖрдк рдХрд┐рд╕реА рдЕрдиреНрдп CI рд╕рд░реНрд╡рд░ рдкрд░ IDEA рдирд┐рд░реАрдХреНрд╖рдг рдЪрд▓рд╛рдиреЗ рдХреА рдЕрдЪреНрдЫреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдореИрдВ рдпрд╣ рджреЗрдЦрдиреЗ рдХрд╛ рдкреНрд░рд╕реНрддрд╛рд╡ рдХрд░рддрд╛ рд╣реВрдВ рдХрд┐ IDEA рдХрдореНрдпреБрдирд┐рдЯреА рдПрдбрд┐рд╢рди, рдЬреЗрдирдХрд┐рдВрд╕ рдФрд░ рд╡рд╛рд░реНрдирд┐рдВрдЧ рдПрдирдЬреА рдкреНрд▓рдЧрдЗрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдпрд╣ рдХреИрд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рдЪрд░рдг 1. рдХрдВрдЯреЗрдирд░ рдореЗрдВ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдЪрд▓рд╛рдПрдВ рдФрд░ рдПрдХ рд░рд┐рдкреЛрд░реНрдЯ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ
рдкреНрд░рд╛рд░рдВрдн рдореЗрдВ, рдПрдХ CI рд╕рд┐рд╕реНрдЯрдо рдХреЗ рдЕрдВрджрд░ рдПрдХ IDE (рдбреЗрд╕реНрдХрдЯреЙрдк рдПрдкреНрд▓рд┐рдХреЗрд╢рди!) рд╢реБрд░реВ рдХрд░рдиреЗ рдХрд╛ рд╡рд┐рдЪрд╛рд░ рдЬрд┐рд╕рдореЗрдВ рдПрдХ рдЧреНрд░рд╛рдлрд┐рдХрд▓ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдирд╣реАрдВ рд╣реИ, рд╕рдВрджрд┐рдЧреНрдз рдФрд░ рдмрд╣реБрдд рдкрд░реЗрд╢рд╛рдиреА рд╡рд╛рд▓рд╛ рд▓рдЧ рд╕рдХрддрд╛ рд╣реИред рд╕реМрднрд╛рдЧреНрдп рд╕реЗ, IDEA рдбреЗрд╡рд▓рдкрд░реНрд╕ рдиреЗ рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рд╕реЗ рдХреЛрдб рд╕реНрд╡рд░реВрдкрдг рдФрд░ рдирд┐рд░реАрдХреНрд╖рдг рдЪрд▓рд╛рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рдкреНрд░рджрд╛рди рдХреА рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЗрд╕ рдореЛрдб рдореЗрдВ рдЖрдИрдбреАрдИрдП рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдПрдХ рдЧреНрд░рд╛рдлрд┐рдХреНрд╕ рд╕рдмрд╕рд┐рд╕реНрдЯрдо рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ рдФрд░ рдЗрди рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдЯреЗрдХреНрд╕реНрдЯ рд╢реЗрд▓ рдХреЗ рд╕рд╛рде рд╕рд░реНрд╡рд░ рдкрд░ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рдЖрдИрдбреАрдИрдП рдЗрдВрд╕реНрдЯреЙрд▓реЗрд╢рди рдбрд╛рдпрд░реЗрдХреНрдЯрд░реА рд╕реЗ bin/inspect.sh
рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рдирд┐рд░реАрдХреНрд╖рдг рд╢реБрд░реВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдорд╛рдкрджрдВрдбреЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ рдЖрд╡рд╢реНрдпрдХ рд╣реИрдВ:
- рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рд▓рд┐рдП рдкреВрд░реНрдг рдкрде (рд╕рд╛рдкреЗрдХреНрд╖ рд╕рдорд░реНрдерд┐рдд рдирд╣реАрдВ)
- рдирд┐рд░реАрдХреНрд╖рдг рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХреЗ рд╕рд╛рде .xml рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдкрде (рдЖрдорддреМрд░ рдкрд░ .idea / рдирд┐рд░реАрдХреНрд╖рдг рдореЗрдВ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рдЕрдВрджрд░ рд╕реНрдерд┐рдд / Project_Default.xml),
- рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рдкреВрд░реНрдг рдкрде рдЬрд┐рд╕рдореЗрдВ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдкрд░рд┐рдгрд╛рдореЛрдВ рдкрд░ рд░рд┐рдкреЛрд░реНрдЯ рдХреЗ рд╕рд╛рде .xml рдлрд╛рдЗрд▓реЗрдВ рдЬреЛрдбрд╝реА рдЬрд╛рдПрдВрдЧреАред
рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдпрд╣ рдЕрдкреЗрдХреНрд╖рд┐рдд рд╣реИ рдХрд┐
- рдЖрдИрдбреАрдИ рдЬрд╛рд╡рд╛ рдПрд╕рдбреАрдХреЗ рдХреЗ рд▓рд┐рдП рдкрде рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░реЗрдЧрд╛, рдЕрдиреНрдпрдерд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд╛рдо рдирд╣реАрдВ рдХрд░реЗрдЧрд╛ред рдпреЗ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ IDEA рд╡реИрд╢реНрд╡рд┐рдХ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ
jdk.table.xml
рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдирд┐рд╣рд┐рдд рд╣реИрдВред рд╡реИрд╢реНрд╡рд┐рдХ IDEA рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рд╕реНрд╡рдпрдВ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреА рд╣реЛрдо рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдирд┐рд╣рд┐рдд рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕ рд╕реНрдерд╛рди рдХреЛ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ idea.properties
рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ ред - рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХреА рдЧрдИ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдПрдХ рдорд╛рдиреНрдп IDEA рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдП, рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП рд╕рдВрд╕реНрдХрд░рдг рдирд┐рдпрдВрддреНрд░рдг рдХреЛ рдХреБрдЫ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдХрдо рдХрд░рдирд╛ рд╣реЛрдЧрд╛, рдЬрд┐рдиреНрд╣реЗрдВ рдЖрдорддреМрд░ рдкрд░ рдЕрдирджреЗрдЦрд╛ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЕрд░реНрдерд╛рддреН:
.idea/inspectionProfiles/Project_Default.xml
- рд╡рд┐рд╢реНрд▓реЗрд╖рдХ рд╕реЗрдЯрд┐рдВрдЧреНрд╕, рд╡реЗ рдХрдВрдЯреЗрдирд░ рдореЗрдВ рдирд┐рд░реАрдХреНрд╖рдг рд╢реБрд░реВ рдХрд░рддреЗ рд╕рдордп рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рдПрдВрдЧреЗ,.idea/modules.xml
- рдЕрдиреНрдпрдерд╛ рд╣рдореЗрдВ рддреНрд░реБрдЯрд┐ рдорд┐рд▓рддреА рд╣реИ 'рдЗрд╕ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ рдХреЛрдИ рдореЙрдбреНрдпреВрд▓ рдирд╣реАрдВ рд╣реИ',.idea/misc.xml
- рдЕрдиреНрдпрдерд╛ рд╣рдореЗрдВ рддреНрд░реБрдЯрд┐ рдорд┐рд▓рддреА рд╣реИ 'JDK рдХреЛ рдЗрд╕ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рд▓рд┐рдП рдареАрдХ рд╕реЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ',*.iml-
- рдЕрдиреНрдпрдерд╛ рд╣рдореЗрдВ рдореЙрдбреНрдпреВрд▓ рдореЗрдВ рдПрдХ рдЧреИрд░-рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ JDK рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдПрдХ рддреНрд░реБрдЯрд┐ рдорд┐рд▓рддреА рд╣реИред
рд╣рд╛рд▓рд╛рдБрдХрд┐ рдпреЗ рдлрд╛рдЗрд▓реЗрдВ рдЖрдорддреМрд░ рдкрд░ .gitignore
рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реЛрддреА рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЗрдирдореЗрдВ рдХрд┐рд╕реА рд╡рд┐рд╢реЗрд╖ рдбреЗрд╡рд▓рдкрд░ рдХреЗ рд╡рд╛рддрд╛рд╡рд░рдг рдХреЗ рд▓рд┐рдП рд╡рд┐рд╢рд┐рд╖реНрдЯ рдХреЛрдИ рдЬрд╛рдирдХрд╛рд░реА рдирд╣реАрдВ рд╣реЛрддреА рд╣реИ - рдЗрд╕рдХреЗ рд╡рд┐рдкрд░реАрдд, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, workspace.xml
ред workspace.xml
рдлрд╝рд╛рдЗрд▓, рдЬрд╣рд╛рдВ рдРрд╕реА рдЬрд╛рдирдХрд╛рд░реА рдирд┐рд╣рд┐рдд рд╣реЛрддреА рд╣реИ, рдФрд░ рдЗрд╕рд▓рд┐рдП рдЗрд╕реЗ рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рдирд╣реАрдВ рд╣реИред
рдпрд╣ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЛ "рд╕реЗрдЯ" рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рдПрдХ рд░реВрдк рдореЗрдВ рдПрдХ рдХрдВрдЯреЗрдирд░ рдореЗрдВ IDEA рд╕рд╛рдореБрджрд╛рдпрд┐рдХ рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд╕рд╛рде рдорд┐рд▓рдХрд░ JDK рдХреЛ рдкреИрдХ рдХрд░рдиреЗ рдХрд╛ рдПрдХ рддрд░реАрдХрд╛ рдмрддрд╛рддрд╛ рд╣реИред рд╣рдо рдЙрдкрдпреБрдХреНрдд рдЖрдзрд╛рд░ рдХрдВрдЯреЗрдирд░ рдХрд╛ рдЪрдпрди рдХрд░реЗрдВрдЧреЗ, рдФрд░ рдпрд╣рд╛рдВ рд╣рдореЗрдВ рдорд┐рд▓рдиреЗ рд╡рд╛рд▓рд╛ рдбреЙрдХрдлреЗрд░рд╛рдЗрд▓ рдорд┐рд▓реЗрдЧрд╛:
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.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>
рддреИрдпрд╛рд░ рдЫрд╡рд┐ рдбреЛрдХрд░ рд╣рдм рдкрд░ рдЙрдкрд▓рдмреНрдз рд╣реИ ред
рдЖрдЧреЗ рдмрдврд╝рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ, рдХрдВрдЯреЗрдирд░ рдореЗрдВ IDEA рд╡рд┐рд╢реНрд▓реЗрд╖рдХ рдХреА рд╢реБрд░реБрдЖрдд рдХреА рдЬрд╛рдБрдЪ рдХрд░реЗрдВ:
docker run --rm -v <///>:/var/project inponomarev/intellij-idea-analyzer
рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХреЛ рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рдХрд╛рдо рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП, рдФрд░ рд╡рд┐рд╢реНрд▓реЗрд╖рдХ рд░рд┐рдкреЛрд░реНрдЯ рд╡рд╛рд▓реА рдХрдИ .xml рдлрд╛рдЗрд▓реЗрдВ рд╕рдмрдлрд╝реЛрд▓реНрдбрд░ рд▓рдХреНрд╖реНрдп / idea_inspections рдореЗрдВ рджрд┐рдЦрд╛рдИ рджреЗрдиреА рдЪрд╛рд╣рд┐рдПред
рдЕрдм рдЗрд╕рдореЗрдВ рдХреЛрдИ рд╕рдВрджреЗрд╣ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдЖрдИрдбреАрдИ рдХреЛ рдХрд┐рд╕реА рднреА рд╕реАрдЖрдИ рд╡рд╛рддрд╛рд╡рд░рдг рдореЗрдВ рдСрдлрд╝рд▓рд╛рдЗрди рдЪрд▓рд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдФрд░ рд╣рдо рджреВрд╕рд░реЗ рдЪрд░рдг рдкрд░ рдЬрд╛рддреЗ рд╣реИрдВред
рдЪрд░рдг 2. рд░рд┐рдкреЛрд░реНрдЯ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░реЗрдВ рдФрд░ рдЙрд╕рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░реЗрдВ
.Xml рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ рдПрдХ рд░рд┐рдкреЛрд░реНрдЯ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рдЖрдзреА рд▓рдбрд╝рд╛рдИ рд╣реИ, рдЕрдм рдЖрдкрдХреЛ рдЗрд╕реЗ рдорд╛рдирд╡-рдкрдардиреАрдп рдмрдирд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдФрд░ рдЗрд╕рдХреЗ рдкрд░рд┐рдгрд╛рдореЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдЧреБрдгрд╡рддреНрддрд╛ рдХреЗ рдлрд╛рдЯрдХреЛрдВ рдореЗрдВ рднреА рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП - рдпрд╣ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХрд╛ рддрд░реНрдХ рдХрд┐ рдХреНрдпрд╛ рдХреЛрдИ рд╕реНрд╡реАрдХреГрдд рдкрд░рд┐рд╡рд░реНрддрди рдЧреБрдгрд╡рддреНрддрд╛ рдорд╛рдирджрдВрдбреЛрдВ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдЧреБрдЬрд░рддрд╛ рд╣реИ рдпрд╛ рдирд╣реАрдВред
рдпрд╣ рд╣рдореЗрдВ рдЬреЗрдирдХрд┐рдВрд╕ рд╡рд╛рд░реНрдирд┐рдВрдЧ рдПрдирдЬреА рдкреНрд▓рдЧрд┐рди рдореЗрдВ рдорджрдж рдХрд░реЗрдЧрд╛, рдЬреЛ рдЬрдирд╡рд░реА 2019 рдореЗрдВ рдЬрд╛рд░реА рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдЗрд╕рдХреА рдЙрдкрд╕реНрдерд┐рддрд┐ рдХреЗ рд╕рд╛рде, рдЬреЗрдирдХрд┐рдВрд╕ (рдЪреЗрдХрд╕реЗрд▓, рдлрд╛рдЗрдВрдбрдмрдЧреНрд╕, рдкреАрдПрдордбреА, рдЖрджрд┐) рдореЗрдВ рд╕реНрдерд┐рд░ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХреЗ рдкрд░рд┐рдгрд╛рдореЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрдИ рд╡реНрдпрдХреНрддрд┐рдЧрдд рдкреНрд▓рдЧрдЗрдиреНрд╕ рдЕрдм рдЕрдкреНрд░рдЪрд▓рд┐рдд рдХреЗ рд░реВрдк рдореЗрдВ рдЪрд┐рд╣реНрдирд┐рдд рд╣реИрдВред
рдкреНрд▓рдЧрдЗрди рджреЛ рднрд╛рдЧреЛрдВ рдХреЗ рд╣реЛрддреЗ рд╣реИрдВ:
- рдХрдИ рд╡рд┐рд╢реНрд▓реЗрд╖рдХ рд╕рдВрджреЗрд╢ рд╕рдВрдЧреНрд░рд╛рд╣рдХ ( рдкреВрд░реА рд╕реВрдЪреА рдореЗрдВ AcuCobol рд╕реЗ ZPT Lint рддрдХ рд╕рднреА рдЬреНрдЮрд╛рдд рд╡рд┐рд╢реНрд▓реЗрд╖рдХ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ),
- рдЙрди рд╕рднреА рдХреЗ рд▓рд┐рдП рдПрдХ рдПрдХрд▓ рджрд░реНрд╢рдХред
рдЪреЗрддрд╛рд╡рдиреА рдПрдирдЬреА рдХрд╛ рдХреНрдпрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдХреА рд╕реВрдЪреА рдореЗрдВ рдЬрд╛рд╡рд╛ рдХрдВрдкрд╛рдЗрд▓рд░ рд╕реЗ рдЪреЗрддрд╛рд╡рдиреА рдФрд░ рдорд╛рд╡реЗрди рд░рдирдЯрд╛рдЗрдо рд▓реЙрдЧ рд╕реЗ рдЪреЗрддрд╛рд╡рдиреА рд╢рд╛рдорд┐рд▓ рд╣реИ: рд╣рд╛рд▓рд╛рдВрдХрд┐ рд╡реЗ рд▓рдЧрд╛рддрд╛рд░ рджреГрд╖реНрдЯрд┐ рдореЗрдВ рд╣реИрдВ, рд╡реЗ рд╢рд╛рдпрдж рд╣реА рдХрднреА рдЙрджреНрджреЗрд╢реНрдпрдкреВрд░реНрдг рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЗрдВрдЯреЗрд▓реАрдЬ рдЖрдИрдбреАрдИрдП рд░рд┐рдкреЛрд░реНрдЯ рднреА рдорд╛рдиреНрдпрддрд╛ рдкреНрд░рд╛рдкреНрдд рдкреНрд░рд╛рд░реВрдкреЛрдВ рдХреА рд╕реВрдЪреА рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реИрдВред
рдЪреВрдВрдХрд┐ рдкреНрд▓рдЧрдЗрди рдирдпрд╛ рд╣реИ, рдпрд╣ рд╢реБрд░реВ рдореЗрдВ рдЬреЗрдирдХрд┐рдВрд╕ рдкрд╛рдЗрдкрд▓рд╛рдЗрди рдХреЗ рд╕рд╛рде рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдЗрдВрдЯрд░реИрдХреНрдЯ рдХрд░рддрд╛ рд╣реИред рдЙрдирдХреА рднрд╛рдЧреАрджрд╛рд░реА рд╡рд╛рд▓рд╛ рдЕрд╕реЗрдВрдмрд▓реА рдЪрд░рдг рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрд╛рдИ рджреЗрдЧрд╛ (рд╣рдо рд╕рд┐рд░реНрдл рдкреНрд▓рдЧ-рдЗрди рд░рд┐рдкреЛрд░реНрдЯ рдкреНрд░рд╛рд░реВрдк рдЬрд┐рд╕рдореЗрдВ рд╣рдо рдкрд╣рдЪрд╛рдирддреЗ рд╣реИрдВ рдФрд░ рдХрд┐рди рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рд╕реНрдХреИрди рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП):
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')] ) }
рд░рд┐рдкреЛрд░реНрдЯ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ:

рдЖрд╕рд╛рдиреА рд╕реЗ, рдпрд╣ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рд╕рднреА рдорд╛рдиреНрдпрддрд╛ рдкреНрд░рд╛рдкреНрдд рд╡рд┐рд╢реНрд▓реЗрд╖рдгрдХрд░реНрддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рд╕рд╛рд░реНрд╡рднреМрдорд┐рдХ рд╣реИред рдЗрд╕рдореЗрдВ рд╢реНрд░реЗрдгреА рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдЦреЛрдЬреЛрдВ рдХреЗ рд╡рд┐рддрд░рдг рдХрд╛ рдПрдХ рд╕рдВрд╡рд╛рджрд╛рддреНрдордХ рдЖрд░реЗрдЦ рд╣реЛрддрд╛ рд╣реИ рдФрд░ рдкрд╛рддрд╛ рдХреА рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрди рдХреА рдЧрддрд┐рд╢реАрд▓рддрд╛ рдХрд╛ рдПрдХ рдЧреНрд░рд╛рдл рд╣реЛрддрд╛ рд╣реИред рдкреГрд╖реНрда рдХреЗ рдирд┐рдЪрд▓реЗ рднрд╛рдЧ рдореЗрдВ рдЧреНрд░рд┐рдб рдореЗрдВ, рдЖрдк рдПрдХ рддреНрд╡рд░рд┐рдд рдЦреЛрдЬ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдирд┐рд░реАрдХреНрд╖рдг рдХреЗ рд▓рд┐рдП IDEA рдиреЗ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдХрд╛рдо рдирд╣реАрдВ рдХрд┐рдпрд╛ рдХреЗрд╡рд▓ рдПрдХ рдЪреАрдЬ рдЬреЗрдирдХрд┐рдиреНрд╕ рдореЗрдВ рдХреЛрдб рдХреЛ рдмреНрд░рд╛рдЙрдЬрд╝ рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рдереА (рд╣рд╛рд▓рд╛рдВрдХрд┐ рдЕрдиреНрдп рд░рд┐рдкреЛрд░реНрдЯреЛрдВ рдХреЗ рд▓рд┐рдП, рдЬреИрд╕реЗ рдХрд┐ рдЪреЗрдХрд╕реНрдЯрд╛рдЗрд▓, рдпрд╣ рдкреНрд▓рдЧрдЗрди рдпрд╣ рдЦреВрдмрд╕реВрд░рддреА рд╕реЗ рдХрд░ рд╕рдХрддрд╛ рд╣реИ)ред рдпрд╣ рдареАрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ IDEA рд░рд┐рдкреЛрд░реНрдЯ рдкрд╛рд░реНрд╕рд░ рдмрдЧ рд▓рдЧрддрд╛ рд╣реИред
рдЪреЗрддрд╛рд╡рдирд┐рдпреЛрдВ рдХреА рдХреНрд╖рдорддрд╛рдУрдВ рдХреЗ рдмреАрдЪ, рдПрдирдЬреА рдПрдХ рд░рд┐рдкреЛрд░реНрдЯ рдФрд░ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХреНрд╡рд╛рд▓рд┐рдЯреА рдЧреЗрдЯреНрд╕ рдореЗрдВ рд╡рд┐рднрд┐рдиреНрди рд╕реНрд░реЛрддреЛрдВ рд╕реЗ рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╕реНрд░реЛрддреЛрдВ рдХреЛ рдЦреЛрдЬрдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рд╕рдВрджрд░реНрдн рд╡рд┐рдзрд╛рдирд╕рднрд╛ рдХреЗ рд▓рд┐рдП рдПрдХ рд╢рд╛рдлрд╝реНрдЯ рднреА рд╢рд╛рдорд┐рд▓ рд╣реИред рдХреБрдЫ рдЧреБрдгрд╡рддреНрддрд╛ рдЧреЗрдЯреНрд╕ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдкреНрд░рд▓реЗрдЦрди рдпрд╣рд╛рдВ рдЙрдкрд▓рдмреНрдз рд╣реИ - рд╣рд╛рд▓рд╛рдВрдХрд┐, рдпрд╣ рдкреВрд░реНрдг рдирд╣реАрдВ рд╣реИ, рдФрд░ рдЖрдкрдХреЛ рд╕реНрд░реЛрдд рдХреЛ рджреЗрдЦрдирд╛ рд╣реЛрдЧрд╛ред рджреВрд╕рд░реА рдУрд░, рдЬреЛ рд╣реЛ рд░рд╣рд╛ рд╣реИ, рдЙрд╕ рдкрд░ рдкреВрд░реНрдг рдирд┐рдпрдВрддреНрд░рдг рдХреЗ рд▓рд┐рдП, "рд╢рд╛рдлрд╝реНрдЯ" рдХреЛ рд╕реНрд╡рддрдВрддреНрд░ рд░реВрдк рд╕реЗ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ (рдЗрд╕ рд╡рд┐рд╖рдп рдкрд░ рдореЗрд░реА рдкрд┐рдЫрд▓реА рдкреЛрд╕реНрдЯ рджреЗрдЦреЗрдВ)ред
рдирд┐рд╖реНрдХрд░реНрд╖
рдЗрд╕ рд╕рд╛рдордЧреНрд░реА рдХреЛ рддреИрдпрд╛рд░ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ, рдореИрдВрдиреЗ рдЦреЛрдЬ рдХрд░рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓рд┐рдпрд╛: рдХреНрдпрд╛ рдХрд┐рд╕реА рдиреЗ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЗрд╕ рд╡рд┐рд╖рдп рдкрд░ рд╣реИрдмреЗ рдореЗрдВ рд▓рд┐рдЦрд╛ рд╣реИ? рдореИрдВрдиреЗ рдХреЗрд╡рд▓ 2017 рдореЗрдВ lany рдХреЗ рд╕рд╛рде рдПрдХ рд╕рд╛рдХреНрд╖рд╛рддреНрдХрд╛рд░ рдкрд╛рдпрд╛ рдЬрд╣рд╛рдВ рд╡рд╣ рдХрд╣рддреЗ рд╣реИрдВ:
рдЬрд╣рд╛рдВ рддрдХ тАЛтАЛрдореБрдЭреЗ рдкрддрд╛ рд╣реИ, рдЬреЗрдирдХрд┐рдВрд╕ рдпрд╛ рдорд╛рд╡реЗрди рдкреНрд▓рдЧрдЗрди рдХреЗ рд╕рд╛рде рдХреЛрдИ рдПрдХреАрдХрд░рдг рдирд╣реАрдВ рд╣реИ [...] рд╕рд┐рджреНрдзрд╛рдВрдд рд░реВрдк рдореЗрдВ, рдХреЛрдИ рднреА рдЙрддреНрд╕рд╛рд╣реА рдорд┐рддреНрд░ рдЖрдИрдбреАрдИрдП рд╕рд╛рдореБрджрд╛рдпрд┐рдХ рд╕рдВрд╕реНрдХрд░рдг рдФрд░ рдЬреЗрдирдХрд┐рдВрд╕ рдмрдирд╛ рд╕рдХрддрд╛ рд╣реИ, рдХрдИ рдХреЛ рдЗрд╕рд╕реЗ рд▓рд╛рдн рд╣реЛрдЧрд╛ред
рдЦреИрд░: рджреЛ рд╕рд╛рд▓ рдмрд╛рдж, рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдЪреЗрддрд╛рд╡рдиреА рдПрдирдЬреА рдкреНрд▓рдЧрд┐рди рд╣реИ, рдФрд░ рдЖрдЦрд┐рд░рдХрд╛рд░ рдпрд╣ рджреЛрд╕реНрддреА рд╕рдЪ рд╣реЛ рдЧрдИ рд╣реИ!