一、前言
在我们日常开发过程中,经常需要新建一些工程去处理相应模块的业务,同时也为了更好的区分模块边界,所以我们需要构建一些符合当前公司代码模块风格的自定义工程。下面是我供职于某互联网公司搭建脚手架的实践,若有错误之处,还请多多指教。
二、环境要求
- JDK1.8
- 现有的工程结构
- maven
- maven私服
三、操作步骤
先去到你的工程目录,如下是我的工程目录所在

如上图所示:在命令终端执行命令
mvn archetype:create-from-project
如下图所示

回车执行,输出日志如下图所示:

然后在上面的命令行输入:cd target/generated-sources/archetype ,如下图所示

接着还是在命令行执行如下命令:
mvn install
查看控制台输出日志,如果有如下图所示情况,则表示成功

同时运行命令将其推到私服上面:
mvn deploy
注意:以上需要maven配置私服地址、才能推得成功
那么在本地你可以运行一下如下命令:
mvn -U archetype:generate
-DarchetypeGroupId=com.tngee.crm \
-DarchetypeArtifactId=crm-demo-archetype \
-DarchetypeVersion=1.0.0-SNAPSHOT \
-Dversion=1.0.0-SNAPSHOT \
-DgroupId=com.tngee.crm \
-DartifactId=mongdb-demo \
-DappName=Mongdb-demo
温馨提示:以上命令请在git bash上面执行,若是在windows shell 请将 \ 去掉,将命令转成一行再执行,请注意保留参数与参数之间得空格。
以上命令解释:DgroupId 需要填你自己得项目包名,DartifactId需要填写你实际得微服务名称。
在bash命令行,按照指令输入即可生成工程。
四、知识点
像这种多模块的脚手架工程构建,需要明白以下几个知识点、如下

上图所示,可以看到archetype-metadata.xml文件,而这个文件是创建脚手架必须的,主要是对骨架的过滤
看到上面:
-
rootArtifactId 占位符会被parent项目的artifactId替换,也就是 上述中的crm-demo
-
${rootArtifactId}也会被parent项目中的artifactId替换。
-
src/main/resources/archetype-resources里必须要有一个顶级pom文件(如果是单工程就是工程pom文件),同时子文件夹代表了模块定义
看看模板工程定义描述文件:META-INF/maven/archetype-metadata.xml
<?xml version="1.0" encoding="UTF-8"?>
<archetype-descriptor xsi:schemaLocation="https://maven.apache.org/plugins/maven-archetype-plugin/archetype-descriptor/1.1.0 http://maven.apache.org/xsd/archetype-descriptor-1.1.0.xsd" name="crm-demo"
xmlns="https://maven.apache.org/plugins/maven-archetype-plugin/archetype-descriptor/1.1.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<fileSets>
<fileSet filtered="true" encoding="UTF-8">
<directory>.idea/inspectionProfiles</directory>
<includes>
<include>**/*.xml</include>
</includes>
</fileSet>
<fileSet filtered="true" encoding="UTF-8">
<directory>.idea</directory>
<includes>
<include>**/*.xml</include>
</includes>
</fileSet>
<fileSet encoding="UTF-8">
<directory>.idea</directory>
<includes>
<include>**/*.gitignore</include>
</includ

最低0.47元/天 解锁文章

2086

被折叠的 条评论
为什么被折叠?



