我们在创建maven项目的时候,你会发现有这么多的apache提供的模板。
或者使用mvn archetype:generate
命令来快速创建maven项目,也会有很多个选项,让你选择模板序号。那每个模板之间有什么区别呢?
每个模板里其实就是附带不同的依赖和插件。一般在公司私服里都会有属于本公司的一套archeType模板,里面有着调试好的项目用到的依赖包和版本号。
假如自己已经有了一个maven项目,想给该项目创建一个archeType模板。
cd 到项目根目录下执行(pom.xml同级目录)。
mvn archetype:create-from-project 复制代码
此时会在项目target下生成这些文件:
先 cd target/generated-sources/archetype/ 然后执行 mvn install 复制代码
执行成功后,执行 crawl
命令,在本地仓库的根目录生成 archetype-catalog.xml
骨架配置文件:
mvn archetype:crawl 复制代码
来看一看它里面的内容:
[fantj@lalala repository]$ cat archetype-catalog.xml <?xml version="1.0" encoding="UTF-8"?> <archetype-catalog xsi:schemaLocation="http://maven.apache.org/plugins/maven-archetype-plugin/archetype-catalog/1.0.0 http://maven.apache.org/xsd/archetype-catalog-1.0.0.xsd" xmlns="http://maven.apache.org/plugins/maven-archetype-plugin/archetype-catalog/1.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <archetypes> <archetype> <groupId>com.fantj</groupId> <artifactId>my-self-defind-archtype-archetype</artifactId> <version>0.0.1-SNAPSHOT</version> <description>my-self-defind-archtype</description> </archetype> </archetypes> </archetype-catalog> 复制代码
执行 mvn archetype:generate -DarchetypeCatalog=local
从本地archeType模板中创建项目。
mvn archetype:generate -DarchetypeCatalog=local 复制代码
然后会让你选择模板序号和 groupId``artifactId``version
和 package
信息:
Choose archetype: 1: local -> com.fantj:my-self-defind-archtype-archetype (my-self-defind-archtype) Choose a number or apply filter (format: [groupId:]artifactId, case sensitive contains): : 1 Define value for property 'groupId': com.fantj Define value for property 'artifactId': my-self-defind-archetype-test Define value for property 'version' 1.0-SNAPSHOT: : Define value for property 'package' com.fantj: : Confirm properties configuration: groupId: com.fantj artifactId: my-self-defind-archetype-test version: 1.0-SNAPSHOT package: com.fantj Y: : y [INFO] ---------------------------------------------------------------------------- [INFO] Using following parameters for creating project from Archetype: my-self-defind-archtype-archetype:0.0.1-SNAPSHOT [INFO] ---------------------------------------------------------------------------- [INFO] Parameter: groupId, Value: com.fantj [INFO] Parameter: artifactId, Value: my-self-defind-archetype-test [INFO] Parameter: version, Value: 1.0-SNAPSHOT [INFO] Parameter: package, Value: com.fantj [INFO] Parameter: packageInPathFormat, Value: com/fantj [INFO] Parameter: package, Value: com.fantj [INFO] Parameter: version, Value: 1.0-SNAPSHOT [INFO] Parameter: groupId, Value: com.fantj [INFO] Parameter: artifactId, Value: my-self-defind-archetype-test [INFO] Project created from Archetype in dir: /home/fantj/IdeaProjects/maven-tutorial/my-self-defind-archetype-test [INFO] ------------------------------------------------------------------------ [INFO] BUILD SUCCESS 复制代码
项目创建成功!
后面的就与创建普通项目相同了,不做演示。
如果你喜欢我的文章,那麻烦请关注我的公众号,公众号重点分析架构师技术,该公众号还处于初始阶段,谢谢大家的支持。
关注公众号,回复java架构
获取架构视频资源(后期还会分享不同的优质资源噢)。