项目里面用spring boot开发.项目在测试过程中每次打包成jar上传到测试服务器.
因为jar会比较大. 上传时间就会比较长.这样在测试的时候实在不是很方便.
如何能实现将jar解压后可以执行使用jar命令或其他方式运行?以便修改的时候只需要上传替换修改后的文件.
使用内置tomcat。
项目里面用spring boot开发.项目在测试过程中每次打包成jar上传到测试服务器.
因为jar会比较大. 上传时间就会比较长.这样在测试的时候实在不是很方便.
如何能实现将jar解压后可以执行使用jar命令或其他方式运行?以便修改的时候只需要上传替换修改后的文件.
使用内置tomcat。
spring boot打包的jar结构都是相同的,用的是org.springframework.boot.loader.JarLauncher进行启动的,所以直接在解压后的目录下执行:
不是可以直接java -jar 运行吗?或者可以选择打包成war或者直接在build之后的target文件夹里面拷出来用啊。
如果容量已经成为了你关心的指标,那么微服务架构可能是你需要的
楼主问的应该是每次更新需要上传一整个JAR包实在太大了,想每次只更新一部分。如果是WINDOWS服务器,这个比较简单,服务器安装个WINRAR,将要更新的部分CLASS文件上传到服务器后,在服务器中使用WINRAR打开JAR包,将更新文件拖放方式放到JAR包中替换即可,记得要先停掉运行中的JAVA进程
如果是LINUX服务器,原理也是一样,参考以下步骤:
1. 先用jar -tvf {war | jar} 看一下文件中 要替换文件的路径
2. 用jar -xvf {war | jar} {dest} 解压出要替换的文件,包括文件所在的目录路径
3. 再将新文件替换解压之后的目录结构中的文件
4. 最后 jar -uvf {war | jar} {dest} 重新打包成JAR
将jar解压出来运行就失去打jar包的意义了,还不干脆将项目转成war包输出发布
你打爆参数可以只打包自己的代码,将所有的依赖单独打包,运行命令用参数包含进去,那样就小的多
引用来自“battyman”的评论
spring boot打包的jar结构都是相同的,用的是org.springframework.boot.loader.JarLauncher进行启动的,所以直接在解压后的目录下执行:
非常不错。就是希望采用这样的方式来做。感谢。
楼主问的应该是网速问题, 为什么没人提供便宜的宽带套餐 ?
java org.springframework.boot.loader.JarLauncher
提供一个思路: idea里运行springboot项目的时候其是直接运行的main方法并指定了所有的maven依赖到classpath里面. 这样运行速度会比直接运行java -jar的启动速度会高很多 ,不信你们试试看
回到这里的问题, 如果要解压运行,一种是使用常规的命令:
另外就是直接运行main 方法. 大概的命令如下:java -cp=xxx.jar:xxx.jar com.package.to.yourmain.class