测试IDEA版本:2019.2.4 ,2020.1.3
一. 问题场景
当我们从GitHub或公司自己搭建的git仓库上拉取项目代码时,会出现以下错误
报错代码如下所示:
Error running "YxOaDataApplication": Command line is too long. Shorten command line for Yx0aDataApplication or also for Spring Boot default confiquration
二. 报错原因
该问题是由于命令行过长导致的
`
2.1 为什么命令行过长会导致这种问题?
这是由于操作系统对命令行长度有一定的限制所导致的。而不同的操作系统和环境可能对命令行的长度具有不同的限制。
命令行的长度限制是为了确保操作系统能够正确解析和执行命令行参数。当命令行超过系统所定义的最大长度限制时,操作系统会报告命令行过长的错误。
以下是导致命令行过长的一些常见原因:
参数过多
:如果在命令行中传递了大量的参数,例如文件路径、选项或标志等,将增加命令行的长度长路径
:使用较长的文件路径、目录路径或包含多级嵌套的路径也会导致命令行变得很长大量依赖项
:如果应用程序依赖于许多库、模块或插件,并且这些依赖项需要通过命令行参数传递给应用程序,那么命令行长度可能会增加配置项过多
:某些应用程序可能具有大量的配置选项,这些选项需要通过命令行进行传递,从而增加了命令行的长度
三. 解决方案
以本地项目中ServiceStatisticsApplication的启动配置项为例
3.1 方案一
步骤:
①定位到项目中报错的启动配置项(xxxApplication),点击其下拉图标 ”v“ —> ”Edit Condiguration“
②在Run/Debug configuration界面中,点击 “Configuration” --> “Environment” --> “Shorten command line” --> 选择 “JAR manifest” 或 “classpath file”,目的是为了缩短命令行
③重启项目中该报错的模块即可
缺点
如果项目中其他模块发生了该问题,还需要对发生问题的模块的启动项配置做以上的设置,即下个问题模块的启动配置项需要单独设置。
3.2 方案二
步骤:
在项目的.idea/workspace.xml文件中,找到
<component name="PropertiesComponent">
,后面在添加一行<property name="dynamic.classpath" value="true" />
代码示例如下:
<property name="dynamic.classpath" value="true" />
优势
这种解决方案一次设置就行,不必再为项目中每个模块的启动配置项中单独设置