如何使用脚手架创建项目骨架
通过命令行
可以通过 mvn archetype:generate 命令一键创建项目骨架:
命令行参数说明
参数说明:
archetype GAV:
archetypeGroupId: space.x9x.radp
archetypeArtifactId: scaffold-std. 可选列表:
scaffold-std
scaffold-lite
scaffold-simple
scaffold-tiny
scaffold-starter
archetypeVersion: <latest version>.
generated project GAV
groupId: <any>. Default is space.x9x
artifactId: <any>. Default is scaffold-std-demo
package: <any>, Default is space.x9x.demo
radpVersion: <latest version>.
其他
appPort: <any>. Default is 8888
appOwner: <any>. Default is x9x
appEmail: <any>, Default is xozoz.sos@gmail.com
交互模式
mvn -Prepo-artifactory archetype:generate
mvn archetype:generate \
-DarchetypeCatalog=https://xxx/archetype-catalog.xml \
-DarchetypeGroupId=space.x9x.radp \
-DarchetypeArtifactId=scaffold-std \
-DarchetypeVersion=2.16 \
-DgroupId=space.x9x.labs \
-DartifactId=scaffold-std-demo \
-DappName=scaffold-std-demo \
-DradpVersion=2.16 \
-DappPort=8888 \
-DappOwner=x9x \
-DappEmail=xozoz.sos@gmail.com \
-DinteractiveMode=false
非交互模式
mvn -Prepo-artifacty archetype:generate \
-DarchetypeGroupId=space.x9x.radp \
-DarchetypeArtifactId=scaffold-std \
-DarchetypeVersion=3.16 \
-DgroupId=space.x9x.labs \
-DartifactId=scaffold-std-demo \
-Dpackage=space.x9x.demo \
-DappName=scaffold-std-demo \
-DradpVersion=3.16 \
-DappPort=8888 \
-DappOwner=x9x \
-DappEmail=xozoz.sos@gmail.com \
-DinteractiveMode=false
如何控制从哪个制品库下载 archetype
internal: 只使用插件自带的少量官方 archetype 列表
local: 只扫描本地 ~/.m2/repository 下已有的 archetype-catalog.xml
remote: 只读取远程中央仓库目录的 archetype-catalog.xml
URL: 使用你指定的任意 HTTP/HTTPS/file 地址上的 archetype-catalog.xml (maven-archetype-plugin >= 3.0 不在允许使用 URL)
那么,我们就可以通过下面这种方式, 实现自由切换.
<profiles>
<profile>
<id>repo-central</id>
<repositories>
<repository>
...其它仓库
</repository>
<repository>
<id>archetype</id>
<url>https://artifactory.example.com/artifactory/maven-public-virtual</url>
</repository>
</repositories>
</profile>
<profile>
<id>repo-artifactory</id>
<repositories>
<repository>
<id>archetype</id>
<url>https://repo.maven.apache.org/maven2</url>
</repository>
</repositories>
</profile>
</profiles>
Last modified: 29 November 2025