如何在IntelliJ中为整个项目配置“缩短命令行”方法


110

运行测试时,出现错误“命令行太长”。如果将特定方法或类的“运行/调试”配置中的“ Shorten命令行”方法设置为“ JAR清单”,则该方法有效,但是如何为整个项目设置它,或者是否有IDE全局设置?

Answers:


68

您可以通过更改默认的 JUnit运行/调试配置模板来设置缩短命令行的默认方法,并将其用作进一步配置的模板。然后,您在项目中创建的所有新的“运行/调试”配置将使用相同的选项。

这是有关可配置命令行缩短器选项的相关博客文章


3
由于该选项已删除,因此它在新版本中不再起作用。现在该怎么办?
Mulgard

16
对我有用的设置是在单击错误消息链接后出现的对话框中选择选项“ classpath file”。该设置位于“ Shorten命令行”下。
havoc1

1
选择选项“类路径文件”有效,我建议在较新版本的IDE的答案中包括此选项。
MrKumar '19

@MrKumar我得到:'CommandLineWrapper'不适合在Java 9+上启动应用程序。如果运行配置使用“ classpath文件”,请将其更改为“ @argfile”。否则,请联系支持。
Tym Pollack

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版本没有设置此方法的GUI方法,则此方法有效。我想指出的是,它可能是.idea / workspace.xml文件或<project_name> .iws文件。如果没有.idea文件夹,请在项目中搜索.iws文件。
丹尼斯·巴特利特

拯救了我的一天!默认模板对我不起作用。
栖息地

这对我
有用

66

Intellij 2018.2.5

运行=>编辑配置=>选择左侧的节点=>展开环境=>缩短命令行选项=>选择类路径文件或JAR清单

运行/调试配置的屏幕截图,显示了命令行选项


8
每次运行以前从未运行过的测试时,都必须重新设置此解决方案
4ndro1d

2
您可以在模板上针对要设置的配置类型进行设置,而无需为每个新的测试/配置都进行设置。有关详细信息,请参见接受的答案。
丹尼斯·巴特利特

1
对!对于我来说,这对于Android测试来说就像是一种魅力!谢谢!
sud007

谢谢你是救星!
Serg Burlaka

2

感谢Rajesh Goel在Android Studio

运行>编辑配置...

在此处输入图片说明

选择一个测试(最好选择一个父测试类)并将一个Shorten command line:选项设置为classpath file。然后确定(或应用,确定)。

在此处输入图片说明


0

如果您使用9+以上的JDK版本,则应选择

运行 > 编辑配置... >选择JUnit模板。

然后,如下图所示选择@argfile(Java 9+)。请尝试一下。祝你好运的朋友。

在此处输入图片说明

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.