创建项目
根据自己的需要先简单创建一个项目,布局调整好,注意子模块使用__rootArtifactId__-xxx进行命名,方便后续替换
生成模版
进入项目根目录,执行命令:
mvn archetype:create-from-project
调整模版
修改父pom
找到根目录的pom文件,会发现缺少module信息,这个必须加上。
<modules>
<module>${rootArtifactId}-api</module>
<module>${rootArtifactId}-service</module>
<module>${rootArtifactId}-model</module>
<module>${rootArtifactId}-domain</module>
<module>${rootArtifactId}-common</module>
<module>${rootArtifactId}-web</module>
</modules>
修改子pom
子pom之间的引用需要调整
改为
archetype-metadata 修改
修改target/generated-sources/src/main/resources/archetype-resources下的文件,用于动态生成项目包,重点注意看 id 、dir、name 的修改方式。
<modules>
<module id="${rootArtifactId}-api" dir="__rootArtifactId__-client" name="${rootArtifactId}-api">
<fileSets>
<fileSet filtered="true" packaged="true" encoding="UTF-8">
<directory>src/main/java</directory>
<includes>
<include>**/*.java</include>
</includes>
</fileSet>
</fileSets>
</module>
... ...
</modules>
加入动态参数,用于指定package
<requiredProperties>
<requiredProperty key="package">
<defaultValue>com.demo</defaultValue>
</requiredProperty>
</requiredProperties>
调整模版
进入对应的类中,修改引入包改为动态 ${package},默认生成的是项目中指定的包,如下
package ${package}.service.services.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import ${package}.domain.dao.Demo;
import ${package}.domain.mapper.DemoMapper;
import ${package}.service.services.IDemoService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@Service
public class DemoServiceImpl extends ServiceImpl<DemoMapper, Demo> implements IDemoService {
@Autowired
private DemoMapper demoMapper;
@Override
public String test() {
return "demo";
}
}
所有需要调整的地方都一一修改完
发布
修改完成之后,进入 target/generated-sources/archetype目录,执行命令:
mvn install
使用Archetype
命令行使用
执行命令
mvn archetype:generate -DarchetypeCatalog=local
按照提示输入groupId、artifactId 即可