Cara mengkonfigurasi metode "Mempersingkat baris perintah" untuk seluruh proyek di IntelliJ


115

Ketika saya menjalankan tes saya mendapatkan kesalahan "Baris perintah terlalu panjang". Ini berfungsi jika saya menyetel metode "Persingkat baris perintah" dalam konfigurasi Run / Debug ke "manifes JAR" untuk metode atau kelas tertentu, tetapi bagaimana cara menyetelnya untuk seluruh proyek atau apakah ada setelan global IDE untuk itu?

Jawaban:


68

Anda dapat menyiapkan cara default untuk mempersingkat baris perintah dan menggunakannya sebagai template untuk konfigurasi lebih lanjut dengan mengubah template JUnit Run / Debug Configuration default . Kemudian semua konfigurasi Run / Debug baru yang Anda buat dalam proyek akan menggunakan opsi yang sama.

Berikut adalah posting blog terkait tentang opsi pemendek baris perintah yang dapat dikonfigurasi.


3
Ini tidak berfungsi lagi di versi baru karena opsinya dihapus. Bagaimana melakukannya sekarang?
Mulgard

20
Pengaturan yang berhasil bagi saya adalah memilih opsi "file jalur kelas" pada dialog yang muncul dari mengklik tautan pesan kesalahan. Ini di bawah pengaturan "Persingkat baris perintah".
malapetaka1

1
pilih opsi "file classpath" berfungsi dan saya akan menyarankan untuk menyertakan opsi ini dalam jawaban untuk versi IDE yang lebih baru.
MrKumar

@MrKumar saya mengerti: 'CommandLineWrapper' tidak cocok untuk meluncurkan aplikasi di Java 9+. Jika konfigurasi yang dijalankan menggunakan "file classpath", harap ubah ke "@argfile". Jika tidak, harap hubungi dukungan.
Tym Pollack

146

Di dalam folder .idea Anda, ubah file workspace.xml

Menambahkan

<property name="dynamic.classpath" value="true" />

untuk

  <component name="PropertiesComponent">
.
.
.
  </component>

Contoh

 <component name="PropertiesComponent">
    <property name="project.structure.last.edited" value="Project" />
    <property name="project.structure.proportion" value="0.0" />
    <property name="project.structure.side.proportion" value="0.0" />
    <property name="settings.editor.selected.configurable" value="preferences.pluginManager" />
    <property name="dynamic.classpath" value="true" />
  </component>

Jika Anda tidak melihatnya, silakan tambahkan sendiri

 <component name="PropertiesComponent">
    <property name="dynamic.classpath" value="true" />
  </component>

1
Metode ini berfungsi jika versi intellij Anda tidak memiliki metode GUI untuk mengatur ini. Saya ingin menunjukkan, itu mungkin file .idea / workspace.xml ATAU file <project_name> .iws. Jika Anda tidak memiliki folder .idea, cari file .iws dalam proyek Anda.
Dennis Bartlett

menyelamatkan hariku! template default tidak berfungsi untuk saya.
Habitat

72

Intellij 2018.2.5

Run => Edit Konfigurasi => Pilih Node di sisi kiri => luaskan Lingkungan => Persingkat Opsi baris perintah => pilih file Classpath atau manifes JAR

Tangkapan layar Konfigurasi Run / Debug yang menampilkan opsi baris perintah


9
Solusi ini harus disetel baru setiap kali Anda menjalankan satu pengujian yang belum pernah Anda jalankan sebelumnya
4ndro1d

2
Anda dapat menyetelnya di template untuk jenis konfigurasi yang Anda siapkan dan tidak perlu disetel untuk setiap pengujian / konfigurasi baru. Lihat jawaban yang diterima untuk detailnya.
Dennis Bartlett

1
Ya! Ini bekerja seperti pesona bagi saya untuk tes Android! Terima kasih!
sud007

5

Terima kasih kepada Rajesh Goel dalam Android Studio:

Jalankan> Edit Konfigurasi ...

masukkan deskripsi gambar di sini

Pilih tes (lebih baik untuk memilih kelas tes induk) dan setel Shorten command line:opsi ke classpath file. Lalu OK (atau Apply, OK).

masukkan deskripsi gambar di sini


1

Jika Anda menggunakan versi JDK dari 9+, Anda harus memilih

Jalankan > Edit Konfigurasi ... > Pilih template JUnit .

Kemudian pilih @argfile (Java 9+) seperti pada gambar di bawah ini. Silakan mencobanya. Semoga beruntung teman.

masukkan deskripsi gambar di sini

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.