ಜೆಂಕಿನ್ಸ್‌ನಲ್ಲಿ IntelliJ IDEA ತಪಾಸಣೆಗಳನ್ನು ನಡೆಸಲಾಗುತ್ತಿದೆ

IntelliJ IDEA ಇಂದು ಅತ್ಯಾಧುನಿಕ ಸ್ಟ್ಯಾಟಿಕ್ ಜಾವಾ ಕೋಡ್ ವಿಶ್ಲೇಷಕವನ್ನು ಹೊಂದಿದೆ, ಇದು ಅದರ ಸಾಮರ್ಥ್ಯಗಳಲ್ಲಿ "ಅನುಭವಿ" ನಂತಹ "ಅನುಭವಿ" ಗಿಂತ ಹಿಂದೆ ಉಳಿದಿದೆ ಚೆಕ್ಸ್ಟೈಲ್ и ಸ್ಪಾಟ್‌ಬಗ್‌ಗಳು. ಇದರ ಹಲವಾರು "ತಪಾಸಣೆಗಳು" ಕೋಡಿಂಗ್ ಶೈಲಿಯಿಂದ ವಿಶಿಷ್ಟ ದೋಷಗಳವರೆಗೆ ವಿವಿಧ ಅಂಶಗಳಲ್ಲಿ ಕೋಡ್ ಅನ್ನು ಪರಿಶೀಲಿಸುತ್ತದೆ.

ಆದಾಗ್ಯೂ, ವಿಶ್ಲೇಷಣಾ ಫಲಿತಾಂಶಗಳು ಡೆವಲಪರ್‌ನ IDE ಯ ಸ್ಥಳೀಯ ಇಂಟರ್‌ಫೇಸ್‌ನಲ್ಲಿ ಮಾತ್ರ ಪ್ರದರ್ಶಿಸಲ್ಪಡುವವರೆಗೆ, ಅವು ಅಭಿವೃದ್ಧಿ ಪ್ರಕ್ರಿಯೆಗೆ ಕಡಿಮೆ ಬಳಕೆಯಾಗುತ್ತವೆ. ಸ್ಥಾಯೀ ವಿಶ್ಲೇಷಣೆ ಈಡೇರಿಸಬೇಕು ನಿರ್ಮಾಣ ಪೈಪ್‌ಲೈನ್‌ನ ಮೊದಲ ಹಂತವಾಗಿ, ಅದರ ಫಲಿತಾಂಶಗಳು ಗುಣಮಟ್ಟದ ಗೇಟ್‌ಗಳನ್ನು ವ್ಯಾಖ್ಯಾನಿಸಬೇಕು ಮತ್ತು ಗುಣಮಟ್ಟದ ಗೇಟ್‌ಗಳನ್ನು ರವಾನಿಸದಿದ್ದರೆ ನಿರ್ಮಾಣವು ವಿಫಲಗೊಳ್ಳುತ್ತದೆ. TeamCity CI IDEA ನೊಂದಿಗೆ ಸಂಯೋಜಿಸಲ್ಪಟ್ಟಿದೆ ಎಂದು ತಿಳಿದಿದೆ. ಆದರೆ ನೀವು TeamCity ಅನ್ನು ಬಳಸದಿದ್ದರೂ ಸಹ, ನೀವು ಯಾವುದೇ ಇತರ CI ಸರ್ವರ್‌ನಲ್ಲಿ IDEA ತಪಾಸಣೆಗಳನ್ನು ಚಲಾಯಿಸಲು ಸುಲಭವಾಗಿ ಪ್ರಯತ್ನಿಸಬಹುದು. IDEA ಸಮುದಾಯ ಆವೃತ್ತಿ, ಜೆಂಕಿನ್ಸ್ ಮತ್ತು ಎಚ್ಚರಿಕೆಗಳ NG ಪ್ಲಗಿನ್ ಬಳಸಿ ಇದನ್ನು ಹೇಗೆ ಮಾಡಬಹುದೆಂದು ನೋಡಲು ನಾನು ನಿಮಗೆ ಸಲಹೆ ನೀಡುತ್ತೇನೆ.

ಹಂತ 1. ಕಂಟೇನರ್‌ನಲ್ಲಿ ವಿಶ್ಲೇಷಣೆಯನ್ನು ರನ್ ಮಾಡಿ ಮತ್ತು ವರದಿಯನ್ನು ಪಡೆಯಿರಿ

ಮೊದಲಿಗೆ, ಗ್ರಾಫಿಕಲ್ ಇಂಟರ್ಫೇಸ್ ಹೊಂದಿರದ CI ಸಿಸ್ಟಮ್‌ನಲ್ಲಿ IDE (ಡೆಸ್ಕ್‌ಟಾಪ್ ಅಪ್ಲಿಕೇಶನ್!) ಅನ್ನು ಚಾಲನೆ ಮಾಡುವ ಕಲ್ಪನೆಯು ಸಂಶಯಾಸ್ಪದ ಮತ್ತು ತುಂಬಾ ತ್ರಾಸದಾಯಕವಾಗಿ ಕಾಣಿಸಬಹುದು. ಅದೃಷ್ಟವಶಾತ್, IDEA ಡೆವಲಪರ್‌ಗಳು ಚಲಾಯಿಸುವ ಸಾಮರ್ಥ್ಯವನ್ನು ಒದಗಿಸಿದ್ದಾರೆ ಕೋಡ್ ಫಾರ್ಮ್ಯಾಟಿಂಗ್ и ತಪಾಸಣೆಗಳು ಆಜ್ಞಾ ಸಾಲಿನಿಂದ. ಇದಲ್ಲದೆ, ಈ ಕ್ರಮದಲ್ಲಿ IDEA ಅನ್ನು ಚಲಾಯಿಸಲು, ಗ್ರಾಫಿಕ್ಸ್ ಉಪವ್ಯವಸ್ಥೆಯ ಅಗತ್ಯವಿಲ್ಲ ಮತ್ತು ಪಠ್ಯ ಶೆಲ್‌ನೊಂದಿಗೆ ಸರ್ವರ್‌ಗಳಲ್ಲಿ ಈ ಕಾರ್ಯಗಳನ್ನು ನಿರ್ವಹಿಸಬಹುದು.

ಸ್ಕ್ರಿಪ್ಟ್ ಬಳಸಿ ತಪಾಸಣೆಗಳನ್ನು ಪ್ರಾರಂಭಿಸಲಾಗುತ್ತದೆ bin/inspect.sh IDEA ಅನುಸ್ಥಾಪನಾ ಡೈರೆಕ್ಟರಿಯಿಂದ. ಅಗತ್ಯವಿರುವ ನಿಯತಾಂಕಗಳು:

  • ಯೋಜನೆಗೆ ಪೂರ್ಣ ಮಾರ್ಗ (ಸಂಬಂಧಿಗಳನ್ನು ಬೆಂಬಲಿಸುವುದಿಲ್ಲ),
  • ತಪಾಸಣೆ ಸೆಟ್ಟಿಂಗ್‌ಗಳೊಂದಿಗೆ .xml ಫೈಲ್‌ಗೆ ಮಾರ್ಗ (ಸಾಮಾನ್ಯವಾಗಿ .idea/inspectionProfiles/Project_Default.xml ನಲ್ಲಿ ಯೋಜನೆಯೊಳಗೆ ಇದೆ),
  • ವಿಶ್ಲೇಷಣೆಯ ಫಲಿತಾಂಶಗಳ ವರದಿಗಳೊಂದಿಗೆ .xml ಫೈಲ್‌ಗಳನ್ನು ಸಂಗ್ರಹಿಸಲಾಗುವ ಫೋಲ್ಡರ್‌ಗೆ ಪೂರ್ಣ ಮಾರ್ಗ.

ಜೊತೆಗೆ, ಇದು ನಿರೀಕ್ಷಿಸಲಾಗಿದೆ

  • ಜಾವಾ 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, ಅಂತಹ ಮಾಹಿತಿಯು ಅಲ್ಲಿ ಒಳಗೊಂಡಿರುತ್ತದೆ ಮತ್ತು ಆದ್ದರಿಂದ ಅದನ್ನು ಒಪ್ಪಿಸುವ ಅಗತ್ಯವಿಲ್ಲ.

IDEA ಸಮುದಾಯ ಆವೃತ್ತಿಯೊಂದಿಗೆ JDK ಅನ್ನು ಪ್ಯಾಕ್ ಮಾಡುವುದು ಸ್ಪಷ್ಟ ಪರಿಹಾರವಾಗಿದೆ, ವಿಶ್ಲೇಷಿಸಿದ ಯೋಜನೆಗಳಲ್ಲಿ "ಪಿಟ್" ಮಾಡಲು ಸಿದ್ಧವಾಗಿರುವ ರೂಪದಲ್ಲಿ ಕಂಟೇನರ್‌ಗೆ ಪ್ಯಾಕೇಜ್ ಮಾಡುವುದು. ಸೂಕ್ತವಾದ ಬೇಸ್ ಕಂಟೇನರ್ ಅನ್ನು ಆಯ್ಕೆ ಮಾಡೋಣ ಮತ್ತು ಇದು ನಮ್ಮ ಡಾಕರ್‌ಫೈಲ್ ಆಗಿರುತ್ತದೆ:

ಡಾಕರ್‌ಫೈಲ್

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>

ಮುಗಿದ ಚಿತ್ರ ಡಾಕರ್ ಹಬ್‌ನಲ್ಲಿ ಲಭ್ಯವಿದೆ.

ಮುಂದುವರಿಯುವ ಮೊದಲು, ಕಂಟೇನರ್‌ನಲ್ಲಿ IDEA ವಿಶ್ಲೇಷಕ ಚಾಲನೆಯಲ್ಲಿದೆಯೇ ಎಂದು ಪರಿಶೀಲಿಸೋಣ:

docker run --rm -v <путь/к/вашему/проекту>:/var/project inponomarev/intellij-idea-analyzer

ವಿಶ್ಲೇಷಣೆಯು ಯಶಸ್ವಿಯಾಗಿ ರನ್ ಆಗಬೇಕು ಮತ್ತು ವಿಶ್ಲೇಷಕ ವರದಿಗಳೊಂದಿಗೆ ಹಲವಾರು .xml ಫೈಲ್‌ಗಳು ಗುರಿ/ಐಡಿಯಾ_ಇನ್‌ಸ್ಪೆಕ್ಷನ್‌ಗಳ ಉಪಫೋಲ್ಡರ್‌ನಲ್ಲಿ ಗೋಚರಿಸಬೇಕು.

ಯಾವುದೇ CI ಪರಿಸರದಲ್ಲಿ IDEA ವಿಶ್ಲೇಷಕವನ್ನು ಸ್ವತಂತ್ರವಾಗಿ ಚಲಾಯಿಸಬಹುದು ಎಂಬುದರಲ್ಲಿ ಈಗ ಯಾವುದೇ ಸಂದೇಹವಿಲ್ಲ ಮತ್ತು ನಾವು ಎರಡನೇ ಹಂತಕ್ಕೆ ಹೋಗುತ್ತೇವೆ.

ಹಂತ 2. ವರದಿಯನ್ನು ಪ್ರದರ್ಶಿಸಿ ಮತ್ತು ವಿಶ್ಲೇಷಿಸಿ

.xml ಫೈಲ್‌ಗಳ ರೂಪದಲ್ಲಿ ವರದಿಯನ್ನು ಪಡೆಯುವುದು ಅರ್ಧದಷ್ಟು ಯುದ್ಧವಾಗಿದೆ; ಈಗ ನೀವು ಅದನ್ನು ಮಾನವ-ಓದಲು ಸಾಧ್ಯವಾಗುವಂತೆ ಮಾಡಬೇಕಾಗಿದೆ. ಮತ್ತು ಅದರ ಫಲಿತಾಂಶಗಳನ್ನು ಗುಣಮಟ್ಟದ ಗೇಟ್‌ಗಳಲ್ಲಿ ಬಳಸಬೇಕು - ಸ್ವೀಕೃತ ಬದಲಾವಣೆಯು ಗುಣಮಟ್ಟದ ಮಾನದಂಡಗಳ ಪ್ರಕಾರ ಹಾದುಹೋಗುತ್ತದೆಯೇ ಅಥವಾ ವಿಫಲಗೊಳ್ಳುತ್ತದೆಯೇ ಎಂಬುದನ್ನು ನಿರ್ಧರಿಸುವ ತರ್ಕ.

ಇದು ನಮಗೆ ಸಹಾಯ ಮಾಡುತ್ತದೆ ಜೆಂಕಿನ್ಸ್ ಎಚ್ಚರಿಕೆಗಳು NG ಪ್ಲಗಿನ್, ಇದು ಜನವರಿ 2019 ರಲ್ಲಿ ಬಿಡುಗಡೆಯಾಯಿತು. ಅದರ ಆಗಮನದೊಂದಿಗೆ, ಜೆಂಕಿನ್ಸ್ (CheckStyle, FindBugs, PMD, ಇತ್ಯಾದಿ) ಸ್ಥಾಯೀ ವಿಶ್ಲೇಷಣೆಯ ಫಲಿತಾಂಶಗಳೊಂದಿಗೆ ಕೆಲಸ ಮಾಡಲು ಹಲವು ವೈಯಕ್ತಿಕ ಪ್ಲಗಿನ್‌ಗಳನ್ನು ಈಗ ಬಳಕೆಯಲ್ಲಿಲ್ಲ ಎಂದು ಗುರುತಿಸಲಾಗಿದೆ.

ಪ್ಲಗಿನ್ ಎರಡು ಭಾಗಗಳನ್ನು ಒಳಗೊಂಡಿದೆ:

  • ಹಲವಾರು ವಿಶ್ಲೇಷಕ ಸಂದೇಶ ಸಂಗ್ರಾಹಕರು (ಪೂರ್ಣ ಪಟ್ಟಿ AcuCobol ನಿಂದ ZPT ಲಿಂಟ್‌ವರೆಗೆ ವಿಜ್ಞಾನಕ್ಕೆ ತಿಳಿದಿರುವ ಎಲ್ಲಾ ವಿಶ್ಲೇಷಕಗಳನ್ನು ಒಳಗೊಂಡಿದೆ),
  • ಅವರೆಲ್ಲರಿಗೂ ಒಂದೇ ವರದಿ ವೀಕ್ಷಕ.

ಎಚ್ಚರಿಕೆಗಳು NG ವಿಶ್ಲೇಷಿಸಬಹುದಾದ ವಿಷಯಗಳ ಪಟ್ಟಿಯು ಜಾವಾ ಕಂಪೈಲರ್‌ನಿಂದ ಎಚ್ಚರಿಕೆಗಳನ್ನು ಮತ್ತು ಮಾವೆನ್ ಎಕ್ಸಿಕ್ಯೂಶನ್ ಲಾಗ್‌ಗಳಿಂದ ಎಚ್ಚರಿಕೆಗಳನ್ನು ಒಳಗೊಂಡಿದೆ: ಅವು ನಿರಂತರವಾಗಿ ಗೋಚರಿಸುತ್ತಿದ್ದರೂ, ಅವುಗಳನ್ನು ವಿರಳವಾಗಿ ನಿರ್ದಿಷ್ಟವಾಗಿ ವಿಶ್ಲೇಷಿಸಲಾಗುತ್ತದೆ. IntelliJ IDEA ವರದಿಗಳನ್ನು ಸಹ ಮಾನ್ಯತೆ ಪಡೆದ ಸ್ವರೂಪಗಳ ಪಟ್ಟಿಯಲ್ಲಿ ಸೇರಿಸಲಾಗಿದೆ.

ಪ್ಲಗಿನ್ ಹೊಸದಾಗಿರುವುದರಿಂದ, ಇದು ಆರಂಭದಲ್ಲಿ ಜೆಂಕಿನ್ಸ್ ಪೈಪ್‌ಲೈನ್‌ನೊಂದಿಗೆ ಉತ್ತಮವಾಗಿ ಸಂವಹನ ನಡೆಸುತ್ತದೆ. ಅದರ ಭಾಗವಹಿಸುವಿಕೆಯೊಂದಿಗೆ ನಿರ್ಮಾಣ ಹಂತವು ಈ ರೀತಿ ಕಾಣುತ್ತದೆ (ನಾವು ಯಾವ ವರದಿ ಸ್ವರೂಪವನ್ನು ಗುರುತಿಸುತ್ತೇವೆ ಮತ್ತು ಯಾವ ಫೈಲ್‌ಗಳನ್ನು ಸ್ಕ್ಯಾನ್ ಮಾಡಬೇಕು ಎಂಬುದನ್ನು ನಾವು ಪ್ಲಗಿನ್‌ಗೆ ಸರಳವಾಗಿ ಹೇಳುತ್ತೇವೆ):

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 ತಪಾಸಣೆಗೆ ಸರಿಯಾಗಿ ಕೆಲಸ ಮಾಡದ ಏಕೈಕ ವಿಷಯವೆಂದರೆ ಜೆಂಕಿನ್ಸ್‌ನಲ್ಲಿ ಕೋಡ್ ಅನ್ನು ನೇರವಾಗಿ ಬ್ರೌಸ್ ಮಾಡುವ ಸಾಮರ್ಥ್ಯ (ಇತರ ವರದಿಗಳಿಗೆ, ಉದಾಹರಣೆಗೆ ಚೆಕ್‌ಸ್ಟೈಲ್, ಈ ಪ್ಲಗಿನ್ ಇದನ್ನು ಸುಂದರವಾಗಿ ಮಾಡಬಹುದು). ಇದು IDEA ವರದಿ ಪಾರ್ಸರ್‌ನಲ್ಲಿ ದೋಷವನ್ನು ತೋರುತ್ತಿದೆ ಅದನ್ನು ಸರಿಪಡಿಸಬೇಕಾಗಿದೆ.

ಎಚ್ಚರಿಕೆಗಳ NG ನ ವೈಶಿಷ್ಟ್ಯಗಳಲ್ಲಿ ಒಂದು ವರದಿಯಲ್ಲಿ ವಿವಿಧ ಮೂಲಗಳಿಂದ ಸಂಶೋಧನೆಗಳನ್ನು ಒಟ್ಟುಗೂಡಿಸುವ ಸಾಮರ್ಥ್ಯ ಮತ್ತು ಕ್ವಾಲಿಟಿ ಗೇಟ್ಸ್ ಪ್ರೋಗ್ರಾಂ, ಉಲ್ಲೇಖದ ಜೋಡಣೆಗಾಗಿ "ರಾಟ್ಚೆಟ್" ಸೇರಿದಂತೆ. ಕೆಲವು ಗುಣಮಟ್ಟದ ಗೇಟ್ಸ್ ಪ್ರೋಗ್ರಾಮಿಂಗ್ ದಸ್ತಾವೇಜನ್ನು ಲಭ್ಯವಿದೆ ಇಲ್ಲಿ - ಆದಾಗ್ಯೂ, ಇದು ಪೂರ್ಣಗೊಂಡಿಲ್ಲ, ಮತ್ತು ನೀವು ಮೂಲ ಕೋಡ್ ಅನ್ನು ನೋಡಬೇಕು. ಮತ್ತೊಂದೆಡೆ, ಏನು ನಡೆಯುತ್ತಿದೆ ಎಂಬುದರ ಸಂಪೂರ್ಣ ನಿಯಂತ್ರಣಕ್ಕಾಗಿ, "ರಾಟ್ಚೆಟ್" ಅನ್ನು ಸ್ವತಂತ್ರವಾಗಿ ಕಾರ್ಯಗತಗೊಳಿಸಬಹುದು (ನನ್ನನ್ನು ನೋಡಿ ಹಿಂದಿನ ಪೋಸ್ಟ್ ಈ ವಿಷಯದ ಬಗ್ಗೆ).

ತೀರ್ಮಾನಕ್ಕೆ

ಈ ವಸ್ತುವನ್ನು ತಯಾರಿಸಲು ಪ್ರಾರಂಭಿಸುವ ಮೊದಲು, ನಾನು ಹುಡುಕಲು ನಿರ್ಧರಿಸಿದೆ: ಹ್ಯಾಬ್ರೆಯಲ್ಲಿ ಈ ವಿಷಯದ ಬಗ್ಗೆ ಯಾರಾದರೂ ಈಗಾಗಲೇ ಬರೆದಿದ್ದಾರೆಯೇ? ನಾನು ಮಾತ್ರ ಕಂಡುಕೊಂಡೆ ಸಂದರ್ಶನ 2017 с ಲೇನಿಅಲ್ಲಿ ಅವನು ಹೇಳುತ್ತಾನೆ:

ನನಗೆ ತಿಳಿದಿರುವಂತೆ, ಜೆಂಕಿನ್ಸ್ ಅಥವಾ ಮಾವೆನ್ ಪ್ಲಗಿನ್‌ನೊಂದಿಗೆ ಯಾವುದೇ ಏಕೀಕರಣವಿಲ್ಲ […] ತಾತ್ವಿಕವಾಗಿ, ಯಾವುದೇ ಉತ್ಸಾಹಿ ಐಡಿಯಾ ಸಮುದಾಯ ಆವೃತ್ತಿ ಮತ್ತು ಜೆಂಕಿನ್ಸ್‌ನೊಂದಿಗೆ ಸ್ನೇಹಿತರನ್ನು ಮಾಡಬಹುದು, ಅನೇಕರು ಇದರಿಂದ ಮಾತ್ರ ಪ್ರಯೋಜನ ಪಡೆಯುತ್ತಾರೆ.

ಸರಿ, ಎರಡು ವರ್ಷಗಳ ನಂತರ ನಾವು ಎಚ್ಚರಿಕೆಗಳ NG ಪ್ಲಗಿನ್ ಅನ್ನು ಹೊಂದಿದ್ದೇವೆ ಮತ್ತು ಅಂತಿಮವಾಗಿ ಈ ಸ್ನೇಹವು ಫಲಪ್ರದವಾಗಿದೆ!

ಮೂಲ: www.habr.com

ಕಾಮೆಂಟ್ ಅನ್ನು ಸೇರಿಸಿ