windows - gradle 为 windows 生成的 startScript 产生 "input line is too long"

标签 windows command-line gradle spring-boot

使用版本:

springBoot = 1.2.3.RELEASE
gradle = 2.3

当构建一个自执行的 springBoot 发行版(gradle task bootRepackage)时,gradle 在 windows 启动批处理中生成的类路径非常大,这导致 windows 中止启动脚本并出现错误“输入行太长”。

如何解决此限制?

最佳答案

我通过将巨大的类路径缩短为简单的来操纵生成的 windows 启动批处理,找到了以下解决方案

    %APP_HOME%\lib\*  

从 java6 开始是允许的。

startScripts {
    doLast {
        def winScriptFile  = file getWindowsScript()
        def winFileText = winScriptFile.text
        winFileText = winFileText.replaceAll('set CLASSPATH=.*', 'rem original CLASSPATH declaration replaced by:\nset CLASSPATH=%APP_HOME%\\\\lib\\\\\\*')
        winScriptFile.text = winFileText
    }
}

关于windows - gradle 为 windows 生成的 startScript 产生 "input line is too long",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32088966/

相关文章:

python - 安装 matplotlib-venn

c++ - 线程 sleep 超时后不继续执行

python - 打开命令行时Windows环境变量发生变化?

node.js process.env 无法在命令行中工作

gradle - "Address already in use: bind"运行 Gradle JUnit 测试时出现异常

windows - GNU Octave 4 GUI 无法在 Windows 10 上正常工作

windows - 文件夹锁定的工作原理

java - 将 Runtime.exec 与 "Program Files"一起使用的正确语法

更新到 3.0.0 后的 Android Studio "error: failed to read metadata"

java - 我应该为我的 jar 中使用的库申请什么范围?