关于vue和springboot的打包与部署
目前前端如果使用vue的话,大多就是基于vue-cli的,这里我以vue-cli3为主,其实和2差不多,4我还没用过。
vue-cli3打包直接在package.json目录下输入npm run build,生成的dist文件夹就是输出目录,里面有index.html和css、js。然后你可以直接拿到服务器上使用nignx代理,当然需要再做一些配置。
或者,也可以放到springboot项目的static文件夹下,随springboot一起打包,再部署到tomcat上,或者直接打成jar,直接运行。
首先在springboot项目的resources文件夹下建一个static文件夹,之后直接把vuecli打包好的dist文件夹复制到static文件夹下,这时首先要打开index.html,修改css和js的引用路径,前面要加上你springboot项目的访问路径(context-path),以及这个dist:
<link href=/vue/dist/css/app.362b5d12.css rel=preload as=style>
<link href=/vue/dist/js/app.be46b0b3.js rel=preload as=script>
<link href=/vue/dist/js/chunk-vendors.47e0618d.js rel=preload as=script>
<link href=/vue/dist/css/app.362b5d12.css rel=stylesheet>
这样就可以直接ip:端口/context-path/dist/index.html直接访问前端写好的页面了。之后直接打包springboot项目就可以了。
(!注意:使用IDEA工具,在把dist文件复制过去后,需要重启IDEA工具,否则即使修改了index页面的css和js路径,也有可能获取不到)
那么说springboot的打包与部署,打成war包其实一般出问题比较少,打成war包后放到服务器上的tomcat上重启tomcat就行了。
但是打成jar包运行时就会出很多的问题。
先说构建maven项目时,自带的maven-plugin打包插件,在lifecycle点击package打包后的文件只有几百kb,直接运行就会报“xxx.jar中没有主清单属性”,看网上有说先clean、再compile、再package、再install,但还是不行,最后放弃maven自带的打包插件。
之后看手动打包,还挺麻烦的,中间要改META-INF的位置,打包出来就比较大了。20多mb,我想这才对,但是运行之后还是报错,提示“No auto configuration classes found in META-INF/spring.factories”,又被折腾了好长时间,最后回顾原先看的springboot视频,得到了一个最简单的办法,没有之一!
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
直接修改pom文件里的<build>,这些就足够了,之后直接双击lifecycle里的package,打包就ok了,这个自动打包应该是专门针对springboot项目的,java -jar 运行无误。