本文版权归作者所有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
转载自夜明的孤行灯
本文链接地址: https://www.huangyunkun.com/2016/06/03/windows-long-classpath-bootrun-cant-run/
Spring Boot提供了一个很便利的命令bootRun来快速启动应用,项目中的依赖会在启动时作为classpath的一部分传递给java,但是windows系统下有一个问题,如果classpath很长的时候就会直接报错,无法运行。但是如果你生成jar文件,再运行jar文件本身就不会遇到这个问题。
bootRun是一个很便利的功能,自然我们不希望这个功能无法使用,有个取巧的办法。
首先生成一个jar,这个jar文件的manifest中包含了所有依赖,然后bootRun直接依赖这个jar。
task pathingJar(type: Jar) { dependsOn configurations.runtime appendix = 'pathing' doFirst { manifest { attributes "Class-Path": configurations.runtime.files.collect { it.toURL().toString().replaceFirst(/file:/+/, '/') }.join(' ') } } } bootRun { dependsOn pathingJar doFirst { classpath = files("$buildDir/classes/main", "$buildDir/resources/main", pathingJar.archivePath) } }
本文版权归作者所有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
转载自夜明的孤行灯
本文链接地址: https://www.huangyunkun.com/2016/06/03/windows-long-classpath-bootrun-cant-run/