轻量级前端框架助力开发者提升项目效率与性能
720
2022-10-08
如何开发一个项目脚手架
创建一个项目通常需要依赖很多的二/三方组件,我们很难记住每个组件的maven坐标,并且有些组件的初始化工作很繁琐,一堆配置项很难记住。如果没有脚手架,每当需要创建一个新的project,我们通常会选择基于现有的project复制一份,然后修改修改。
如果是纯粹的只使用spring的三方组件就能创建一个project,那么我们完全可以使用start.spring.io提供脚手架,但通常我们都会自己写一些二方组件,或者基于三方组件封装二方组件,然后发布到公有/私有maven仓库,这时我们就需要定制一个适用于自己/公司技术栈的new project脚手架了。
maven提供了基于项目模版创建新项目的能力,即maven项目脚手架。当我们在idea->new maven project时,idea也会提示我们是否根据模版创建项目,并提供了一些可选的模版,只是这些模版都不适合我们。但我们可以自己定制maven项目模版。
以下就是自己开发一个maven模版项目,并将模版项目上传到私有仓库,最后根据模版创建新项目的步骤。
1.按正常项目开发,开发一个模版项目,假设项目坐标如下。
groupId=com.wujiuye.microservices.templateartifactId=microservices-templateversion=1.0.0
2.创建为maven模版项目,执行下面命令。
mvn clean archetype:create-from-project
创建出来的模版项目,坐标的artifactId会被加上-archetype后缀,变成:
groupId=com.wujiuye.microservices.templateartifactId=microservices-template-archetypeversion=1.0.0
3.将模版项目上传到模版仓库
进入/target/generated-sources/archetype目录下,修改pom.xml配置文件,添加私有仓库配置:
进入/target/generated-sources/archetype目录下,执行下面命令上传archetype
mvn clean deploy
4.通过模版创建项目,执行下面命令
mvn -X archetype:generate -B \ -DarchetypeGroupId=${替换为模版的groupId,例如:com.wujiuye.microservices.template} \ -DarchetypeArtifactId=${替换为模版的artifactId,例如:microservices-template-archetype} \ -DarchetypeVersion=${替换为模版的version} \ -DgroupId=${替换为项目groupId} \ -DartifactId=${替换为项目artifactId} \ -Dversion=${替换为项目version} \ -Dpackage=${替换为项目package} \
执行以上命令也可以使用临时的mvn环境变量,使用临时的mvn环境,如下:
先配置临时mvn环境
M2_HOME=/Users/wujiuye/projects/microservices-initializr/apache-mavenexport PATH=$PATH:$M2_HOME/bin
创建为maven模版项目
mvn clean archetype:create-from-project
使用指定的settings.xml文件,将模版项目上传到模版仓库
同样需要进入/target/generated-sources/archetype目录下,修改pom.xml配置文件,添加私有仓库配置,再执行下面的命令。
cd target/generated-sources/archetypemvn clean deploy --settings /Users/wujiuye/.m2/settings.xml
maven提供的脚手架功能还是相对简单的,我们只能替换下项目的groupId、artifactId、version、package这些。但我们可以基于此,开发一个更完善的脚手架,并提供像start.spring.io提供的勾勾点点就能自动生成项目的一个脚手架网页。
首先,我们创建一个web项目,然后将根据maven模版坐标创建模版项目的功能封装到web项目。提供一个api,前端调用一下,就通过执行shell脚本,执行mvn -X archetype:generate命令创建模版项目。
然后,我们就可以基于生成的模版项目去实现更多的定制化功能了。例如,实现按需勾选依赖组件功能。
前端获取可选依赖库展示,后端根据前端传递的用户勾选的依赖项,先读取项目的pom.xml依赖配置文件,写入勾选的依赖的maven坐标。再根据勾选的依赖,添加初始化代码,以及添加配置项。 例如在Main类上添加@EnableXxx注解,在application.yaml配置文件中添加配置项。
其中的难点是如何修改pom.xml配置文件、application.yaml配置文件,以及如何修改java源码文件。读写xml文件可使用dom4j组件实现,读写yaml文件可使用snakeyaml组件实现,而修改java源码文件可使用javaparser组件实现。
最后,将模版项目压缩成jar包,响应jar包的-链接给前端,前端使用-链接生成-按钮。
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~