# single-archetype **Repository Path**: tzs1993/single-archetype ## Basic Information - **Project Name**: single-archetype - **Description**: maven 单项目脚手架搭建demo - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2021-06-13 - **Last Updated**: 2021-06-13 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README #### 自定义单模块archetype ##### 模板搭建 1、项目骨架 所有的项目骨架内容都集中在src/main/resources/archetype-resources文件夹下。archetype-resources中的pom.xml定义了待生成项目的pom文件的内容,/src/main/java、/src/test/java中分别定义了待生成项目中相应目录下的内容 2、元数据 /src/main/resources/META-INF/maven/archetype-metadata.xml中定义相关的元数据描述,该文件的位置固定为resources/META-INF/maven文件夹下,且名称固定为archetype-metadata.xml。 具体内容如下: packaged="true"表示src/main/resources/archetype-resources/src/main/java中对应的内容,是否要放入到package中 filtered="true"表示后面提到的${}是否要进行替换 ```xml src/main/java **/*.java src/main/resources **/*.* src/test/java **/*.java src/test/resources **/*.* ``` 3、src/main/resources/archetype-resources/pom.xml内容 ${}标识的变量都是通过maven中的命令行传进来的,如:mvn archetype:generate -DgroupId=com.thebeastshop ```xml 4.0.0 ${groupId} ${artifactId} ${version} ${artifactId} junit junit 3.8.1 test maven-deploy-plugin true org.apache.maven.plugins maven-archetype-plugin 2.2 1.7 1.7 org.apache.maven.plugins maven-source-plugin UTF-8 ``` 4.src/main/resources/archetype-resources/src/main/java/Demo.java内容 ```java package ${package}; public class Demo{ public static void main( String[] args ) { System.out.println( "Hello My Archetype!" ); System.out.println( "myProperty:${myProperty}");//print myProperty } } ``` ##### 运行测试 把该模板jar包安装到本地仓库 mvn clean install 然后通过本地仓库中的该jar包来生成一个项目 -DarchetypeGroupId=com.archetype -DarchetypeArtifactId=single-archetype -DarchetypeVersion=1.0-SNAPSHOT 这三个确定的是使用的骨架 -DgroupId=com.mycompany.app -DartifactId=my-app 这两个就是自己写的名字。 mvn archetype:generate -DgroupId=com.mycompany.app -DartifactId=my-app -Dpackage="com.mycompany.app" -DarchetypeGroupId=com.archetype -DarchetypeArtifactId=single-archetype -DarchetypeVersion=1.0-SNAPSHOT -X -DarchetypeCatalog=local