Memperkenalkan PVS-Studio Static Analyzer untuk Java

Selama bertahun-tahun, tim PVS-Studio telah mengembangkan alat analisa statis dengan nama yang sama. Saat ini, penganalisa adalah solusi perangkat lunak yang kompleks dan memberikan kemampuan untuk menganalisis bahasa pemrograman seperti C, C ++, C # dan Java pada platform Windows, Linux, dan macOS. Baru-baru ini, Java telah ditambahkan ke sejumlah bahasa pemrograman yang didukung. Jika penganalisis PVS-Studio telah memantapkan dirinya di antara pengembang C ++ dan C # selama bertahun-tahun, maka PVS-Studio masih merupakan pemula bagi pemirsa Java. Banyak yang bahkan tidak mendengar tentang alat analisa, dan mereka yang mendengarnya tidak terlalu akrab dengan semua kemampuannya. Oleh karena itu, dalam artikel ini saya ingin memperkenalkan Anda ke PVS-Studio Java, berbicara tentang metode peluncuran dan kemampuannya.

Gambar 2


Informasi umum


PVS-Studio Java static code analyzer terdiri dari dua bagian utama: kernel yang melakukan analisis, dan plug-in untuk integrasi ke dalam sistem perakitan (Gradle, Maven) dan IDE (IntelliJ IDEA).

Plugin menerima struktur proyek (set file sumber dan classpath), setelah itu mereka mentransfer informasi ini ke kernel. Selain itu, plugin bertanggung jawab untuk menggunakan kernel untuk analisis - plugin akan secara otomatis diunduh pada peluncuran pertama.

Dimungkinkan juga untuk menjalankan analisa secara langsung dengan mendaftar sumber dan classpath.

Analisis dapat dilakukan jika komputer Anda memenuhi persyaratan sistem berikut:

  • Sistem Operasi: Windows, Linux, macOS;
  • Versi minimum Java untuk menjalankan penganalisis: Java 8 (64-bit). Catatan: proyek yang dianalisis dapat menggunakan versi Java apa pun;
  • Versi minimum IntelliJ IDEA adalah 2017.2.

Plugin untuk Maven


Jika proyek yang sedang Anda kerjakan didasarkan pada sistem build Maven, Anda dapat menggunakan plugin pvsstudio-maven-plugin. Untuk melakukan ini, tambahkan berikut ini ke file pom.xml proyek:

<pluginRepositories> <pluginRepository> <id>pvsstudio-maven-repo</id> <url>http://files.viva64.com/java/pvsstudio-maven-repository/</url> </pluginRepository> </pluginRepositories> <build> <plugins> <plugin> <groupId>com.pvsstudio</groupId> <artifactId>pvsstudio-maven-plugin</artifactId> <version>{VERSION_PVS_JAVA}</version> <configuration> <analyzer> <outputType>text</outputType> <outputFile>path/to/output.txt</outputFile> .... </analyzer> </configuration> </plugin> </plugins> </build> 

Sebelum memulai analisis, Anda harus memasukkan data lisensi:

 mvn pvsstudio:pvsCredentials "-Dpvsstudio.username=USR" "-Dpvsstudio.serial=KEY" 

Setelah itu, informasi lisensi akan disimpan dalam % APPDATA% / PVS-Studio-Java / PVS-Studio.lic di Windows atau ~ / .config / PVS-Studio-Java / PVS-Studio.lic di macOS dan Linux.

Setelah itu, Anda dapat menjalankan analisis:

 $ mvn pvsstudio:pvsAnalyze 

Di blok <analyzer> , Anda dapat mengonfigurasi analisa. Daftar semua pengaturan dapat ditemukan di sini .

Plugin untuk gradle


Jika proyek yang sedang Anda kerjakan didasarkan pada sistem build Gradle, Anda dapat menggunakan plugin pvsstudio-gradle-plugin. Untuk melakukan ini, tambahkan berikut ini ke file proyek build.gradle:

 buildscript { repositories { mavenCentral() maven { url uri('http://files.viva64.com/java/pvsstudio-maven-repository/') } } dependencies { classpath group: 'com.pvsstudio', name: 'pvsstudio-gradle-plugin', version: '{VERSION_PVS_JAVA}' } } 

 apply plugin: com.pvsstudio.PvsStudioGradlePlugin pvsstudio { outputType = 'text' outputFile = 'path/to/output.txt' .... } 

Sebelum memulai analisis, Anda harus memasukkan data lisensi:

 ./gradlew pvsCredentials "-Ppvsstudio.username=USR" "-Ppvsstudio.serial=KEY" 

Setelah itu, informasi lisensi, serta dengan plugin Maven, akan disimpan dalam % APPDATA% / PVS-Studio-Java / PVS-Studio.lic pada OS Windows atau di ~ / .config / PVS-Studio-Java / PVS- Studio.lic di macOS dan Linux.

Setelah itu, Anda dapat menjalankan analisis:

 $ ./gradlew pvsAnalyze 

Di blok pvsstudio, Anda dapat mengonfigurasi analisator. Daftar semua pengaturan dapat ditemukan di sini .

Plugin untuk IntelliJ IDEA


Alat analisa Java PVS-Studio juga dapat digunakan sebagai plug-in untuk IntelliJ IDEA. Dalam hal ini, analisis struktur proyek dilakukan dengan menggunakan IDE ini, dan plug-in menyediakan antarmuka grafis yang nyaman untuk bekerja dengan penganalisa.

Plugin PVS-Studio untuk IDEA dapat diinstal dari:


Setelah Anda menginstal plugin, Anda harus memasukkan data lisensi:

1) Analisis → PVS-Studio → Pengaturan

Gambar 26

2) Tab pendaftaran:

Gambar 28

Sekarang Anda dapat memulai analisis proyek saat ini:

Gambar 30

Perizinan


Alat analisis PVS-Studio difokuskan pada tim pengembangan dan pada dasarnya adalah produk B2B yang eksklusif. Untuk membiasakan diri dengan kemampuan penganalisa, Anda dapat meminta kunci percobaan .

Jika Anda mengembangkan proyek sumber terbuka, atau, misalnya, menjadi mahasiswa, maka Anda dapat menggunakan salah satu opsi lisensi gratis dari PVS-Studio.

Penindasan peringatan palsu


Untuk memerangi positif palsu, penganalisis menyediakan serangkaian mekanisme yang berbeda:

1. Menggunakan komentar khusus dalam kode:

 void f() { int x = 01000; //-V6061 } 

2. Menggunakan file penekan .

3. Menggunakan anotasi @SuppressWarnings (....)

Penganalisis mengetahui beberapa anotasi dan mungkin tidak menghasilkan peringatan pada kode yang telah ditandai. Sebagai contoh:

 @SuppressWarnings("OctalInteger") void f() { int x = 01000; } 

Kesimpulan


Apa yang baru saja kita periksa hanyalah sebagian kecil dari apa yang bisa dikatakan. Misalnya, ada kemungkinan integrasi dengan SonarQube dan sebagainya. PVS-Studio Java adalah area muda yang aktif berkembang:

  • fungsionalitas baru ditambahkan
  • memperluas peluang
  • aturan diagnostik ditambahkan dan ditingkatkan,
  • dan masih banyak lagi.

Untuk sepenuhnya mengeksplorasi kemampuan analisis yang ada dan tidak ketinggalan penampilan yang baru di masa mendatang, baca blog PVS-Studio.



Jika Anda ingin berbagi artikel ini dengan audiens yang berbahasa Inggris, silakan gunakan tautan ke terjemahan: Maxim Stefanov. Mengenal Penganalisis Statis PVS-Studio untuk Java

Source: https://habr.com/ru/post/id462275/


All Articles