需求背景
因为前端(react脚手架)项目打包一直用的jekens第三方库用脚本执行命令行的方式去打包(减少对jekens第三方库的依赖),想着直接能不能用maven(java的打包工具)去打包前端代码。
准备工作
因为这些事情需要安装maven插件去完成,其中对maven的版本要求是3.6的版本或者更高版本,附上maven的安装包zip下载链接maven 下载(记得下载-bin.zip为后缀的文件),下载以后解压好,存在任意盘。
文件目录结构
build 是react build后的产物 ;node是放node和npm等安装包的地方;node-modules是放npm 下载好的react需要的插件 ;src和public放的react源码 ;target是执行生成war包命令后自动生成的文件夹,为war包的存放位置;package.xml为文件夹编译成war包的设置文件;pom.xml为maven的相关配置文件;
实现步骤
1、首先在java项目根目录的pom.xml配上你的项目文件夹(比如:face-v),配置好了以后你的前端文件夹就可以执行maven 的脚本了
\
\
我的前端相关代码叫文件夹为face-v
2、下载好了maven安装包后,需要配置好idea(java编辑器)里的maven设置,如图
\
idea设置maven 配置按钮
\
第一步,设置maven的安装目录,第二步,把maven的设置文件导入进去,setting文件的设置需要根据自己项目的实际情况去配置,下图是我项目的配置
setting 的具体改动
\
我们项目是固定在一个机器上进行打包,所以配置了该机器的镜像
\
这个是网络代理,因为网络较差,下载插件会失败(网络好的话,可不设置)
\
\
画红线部分就是写上maven的安装位置下的repository文件夹,其余不用设置
3、去拷贝别的java srv下的pom.xml到你的项目(我的是face-v)根目录下(为什么一定要pom.xml文件?答:maven靠pom.xml去执行),把没用的内容都删掉(只留下一些版本和项目名称这些内容即可)
pom详细设置解答
***<project xmlns="maven.apache.org/POM/4.0.0" xmlns:xsi="www.w3.org/2001/XMLSch…
** xsi:schemaLocation="maven.apache.org/POM/4.0.0 maven.apache.org/xsd/maven-4…
4.0.0
前端代码文件夹名称
${version}
pom
biolive
app-parent
6.0.0
../../pom.xml
com.github.eirslett
frontend-maven-plugin
1.12.1
${basedir}
install node and npm
compile
install-node-and-npm
v16.14.0
6.14.5
npm install
compile
npm
install
npm run build
compile
npm
run build
2.2.1
make-assembly
package
single
false
package.xml
${project.artifactId}
snapshots
Nexus server
http://172.100.1.50:8081/nexus/content/repositories/snapshots
releases
Nexus server
http://172.100.1.50:8081/nexus/content/repositories/releases
package.xml的详细设置
assembly
war
true
${basedir}\build
</outputDirectory>
\