Як налаштувати метод “Скоротити командний рядок” для всього проекту в IntelliJ


110

Коли я запускаю тести, я отримую помилку "Командний рядок занадто довгий". Це працює, якщо для конфігурації Виконати / Налагодження встановити для методу "Скоротити командний рядок" значення "JAR manifest" для конкретного методу або класу, але як мені встановити його для всього проекту або для нього є глобальне налаштування IDE?

Відповіді:


68

Ви можете встановити спосіб за замовчуванням скоротити командний рядок і використовувати його як шаблон для подальших конфігурацій, змінивши шаблон JUnit Run / Debug Configuration за замовчуванням . Тоді всі нові налаштування запуску / налагодження, створені вами в проекті, використовуватимуть ту саму опцію.

Ось відповідне повідомлення в блозі про налаштовуваний параметр скорочення командного рядка.


3
У новій версії він більше не працює, оскільки параметр був видалений. Як це зробити зараз?
Малгард

16
Налаштування, яке працювало для мене, - це вибрати в діалоговому вікні опцію «файл класного шляху», що з’являється при натисканні на посилання повідомлення про помилку. Це під налаштуванням "Скоротити командний рядок".
havoc1

1
виберіть варіант "файл класного курсу" працює, і я б запропонував включити цю опцію у відповідь на новішу версію IDE.
MrKumar

@MrKumar я отримую: 'CommandLineWrapper' непридатний для запуску програм на Java 9+. Якщо конфігурація запуску використовує "файл classpath", будь ласка, змініть його на "@argfile". В іншому випадку, будь ласка, зв'яжіться зі службою підтримки
Тім Поллак

143

Всередині папки .idea змініть файл Workspace.xml

Додайте

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

до

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

Приклад

 <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>

Якщо ви цього не бачите, сміливо додайте його

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

Цей метод працює в тому випадку, якщо у вашій версії intellij немає методу настройки цього інтерфейсу. Я хотів би зазначити, це може бути файл .idea / workspace.xml АБО <project_name> .iws файл. Якщо у вас немає папки .idea, знайдіть файл .iws у своєму проекті.
Денніс Бартлетт

врятував мій день! шаблони за замовчуванням для мене не працювали.
місця проживання

У мене
це вийшло

67

Intellij 2018.2.5

Виконати => Редагувати конфігурації => Вибрати вузол зліва = = розгорнути середовище => Скоротити параметри командного рядка => вибрати файл Classpath або маніфест JAR

Знімок екрана Run / Debug Configuration, що показує параметри командного рядка


8
Це рішення повинно бути новим щоразу, коли ви запускаєте тест, який ви раніше не проводили
4ndro1d

2
Ви можете встановити це в шаблоні для типу конфігурації, який ви налаштовуєте, і його не потрібно буде встановлювати для кожного нового тесту / конфігурації. Деталі див. У прийнятій відповіді.
Денніс Бартлетт

1
Так! Це спрацювало як принадність для тестів Android! Дякую!
sud007

дякую ви рятівнику!
Серг Бурлака

2

Завдяки Rajesh Goel у Android Studio:

Виконати> Редагувати конфігурації ...

введіть тут опис зображення

Виберіть тест (краще вибрати батьківський тестовий клас) та встановіть Shorten command line:опцію classpath file. Потім добре (або Застосувати, добре).

введіть тут опис зображення


0

Якщо ви використовуєте версію JDK від 9+, вам слід вибрати

Виконати > Редагувати конфігурації ... > Вибрати шаблон JUnit .

Потім виберіть @argfile (Java 9+), як на малюнку нижче. Будь ласка, спробуйте. Успіхів друзі.

введіть тут опис зображення

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.