# 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