springboot中前端项目和后端项目一起打包
方案一
复制文件到springboot的resources里的public目录或static目录
node("nodename") {
def mvnHome
stage('git clone') {
git clone 代码 。。。
}
stage('clean init') {
sh "mkdir -p webapp-api/src/main/resources/public"
sh "rm -rf webapp-api/src/main/resources/public"
sh "cd webapp-api && ${mvnHome}/bin/mvn clean"
}
stage('build web vue') {
sh "cd webapp-web && rm -rf package-lock.json && cnpm install && cnpm run build"
sh "cp -r webapp-web/dist/* webapp-api/src/main/resources/public"
}
stage('build api image') {
sh "cd webapp-api && ${mvnHome}/bin/mvn -Dmaven.test.skip=true -Pdev clean compile package"
}
stage('build image') {
sh "cd webapp-api && ${mvnHome}/bin/mvn docker:build -DpushImage"
}
stage("rolling update") {
sh "cd webapp-api && kubectl -s http://ip:port apply -f target/classes/deploy.yml --record"
}
stage("deploy svc") {
sh "cd webapp-api && kubectl -s http://ip:port apply -f target/classes/svc.yml"
}
}
方案二
把前端项目打包成jar包,在springboot项目中进行引用
原理 Servlet3.0版本规则,包中的 META-INF/resources文件直接可以被浏览
springboot支持Servlet3.0
1.前端项目结构
src
├─main
│ ├─java
│ └─resources
│ └─META-INF
│ └─resources
└─test
└─java
在src/main/resources/META-INF/resources里放值静态文件
也可以通过npm生成上述目录结构,然后通过maven进行打包成jar包
如添加一个文件
src/main/resources/META-INF/resources/index.html
2.后端项目引用前端项目的jar包
<dependency>
<groupId>xx</groupId>
<artifactId>xx-xx</artifactId>
<version>xx.xx.xxx</version>
</dependency>