当我运行测试时,我得到错误“命令行太长”。 如果我在运行/调试配置中将“缩短命令行”方法设置为特定方法或类的“JAR清单”,它就可以工作,但我如何为整个项目设置它,或者有IDE全局设置吗?


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

这是一篇关于可配置命令行缩短选项的相关博文。


在。idea文件夹中,更改workspace.xml文件

Add

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

to

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

社区编辑:这个解决方案似乎在新版本的IDE中不起作用,PropertiesComponent的格式现在不同了。如果这是你的情况,那么这个答案应该有用


智能 2018.2.5

Run => Edit Configurations =>选择左边的Node => expand Environment => Shorten Command line options =>选择Classpath file or JAR manifest


感谢Rajesh Goel在Android Studio的贡献:

执行>编辑配置…

选择一个测试(最好选择一个父测试类),并将Shorten命令行:选项设置为类路径文件。然后OK(或Apply, OK)。


如果您使用JDK版本从9+,您应该选择

执行>编辑配置…>选择JUnit模板。

然后,选择如下图所示的@argfile (Java 9+)。

如果您没有看到“缩短”命令行,那么只需单击如下所示的“修改选项”菜单,然后选择“缩短”命令行

请试试。朋友们,祝你们好运。


最新的2020版本默认没有缩短命令行选项,我们需要从配置中添加该选项。

执行> Edit Configurations >选择相应的运行配置,单击“Modify options”,将缩短命令行配置添加到界面中。

选择shorten命令行选项

现在从shorten命令行选项中选择jar清单


添加<property name="dynamic. "<component name="PropertiesComponent">标签下的。idea/workspace.xml文件。这对我很管用。


遵循这些步骤并选择“classpath”。从“缩短”命令行类别中给出的下拉列表中选择“文件”。


在我的例子中,错误是:

Error running 'MasterFileGenerator':
Command line is too long. Shorten command line for StagingFileGenerator or also for Application default configuration.

解决方案是切换到“运行/调试配置”,并从用户本地默认:none - java [options] className [args]切换到JAR manifest - java -cp classpath.jar className [args]。


坚持:

打开Intellj ctrl + shift + n 类型workspace.xml 查找组件名称="PropertiesComponent"标签 A)如果有属性列表,添加

<属性名= "动态。类路径" value="true" />

b)如果有keyToString json,在map中添加新行:

“dynamic.classpath&quot:“true&quot; (记住上面一行的逗号)

(可选)如果你想在另一个项目中也启用这个配置,重启intellj