Maven Archetype

创建并使用

1.基于现有结构来生成骨架,比如你写了个骨架项目基于骨架项目快速生成Archetype模版供大家使用

mvn archetype:create-from-project -s /Users/liqiang/Desktop/environment/apache-maven-3.9.6/conf/settings.xml

2.cd到生成的模版

cd target/generated-sources/archetype

3.安装Archetype

mvn install

4.使用Maven Archetype生成项目

mvn archetype:generate -DarchetypeCatalog=local
#local表示使用本地的archetype maven有内置的和我们安装的 不从远程查找

5.禁用交互式模式 比如使用脚本生成不采用交互式询问输入

mvn archetype:generate \
    -DarchetypeGroupId=org.example \ 
    -DarchetypeArtifactId=data-fusion-sdk-archetype \
    -DarchetypeVersion=1.0-SNAPSHOT \
    -DgroupId=com.example \
    -DartifactId=my-project \
    -Dversion=1.0.0 \
    -Dpackage=com.example.myproject \
    -DarchetypeCatalog=local \
    -DinteractiveMode=false

参数说明

-DinteractiveMode=false 参数告诉 Maven Archetype 插件禁用交互模式,因此不会询问你是否确认。

Archetype的坐标
-DarchetypeGroupId=org.example \
-DarchetypeArtifactId=data-fusion-sdk-archetype \
-DarchetypeVersion=1.0-SNAPSHOT \

常见问题

生成骨架卡的问题

Generating project in Batch mode

1.使用本地-DarchetypeCatalog=local

install的时候会在本地生成

 

推到私服后如何使用

使用远程nexus仓库的archetype创建项目的时候,必须在自己的maven conf 下settings.xml加入以下配置:

因为Maven 3改变了原型存储库的集成方式。-DarchetypeRepository参数不再存在。相反,需要将archteype存储库添加到settings.xml 并在命令指定settings.xml 如果全局改了就不用指定

mvn archetype:generate -DarchetypeGroupId=org.example -DarchetypeArtifactId=data-fusion-sdk-archetype -DarchetypeVersion=1.0-SNAPSHOT -DgroupId=com.example -DartifactId=my-project -Dversion=1.0.0 -Dpackage=com.example.myproject -DinteractiveMode=false -s D:\yxtgit.hxyxt.com\settings.xml
<profile>
      <!-- the profile id is arbitrary 这个id是任意填的--> 
      <id>my_archetype</id>
      <repositories>
        <repository>
          <!-- the repository id has to be named: archetype 这repository Id必须是archetype -->
          <id>archetype</id>
          <name>my archetypes</name>
          <url>http://127.0.0.1:8081/repository/maven-public/</url>
          <releases>
            <enabled>true</enabled>
            <checksumPolicy>fail</checksumPolicy>
          </releases>
          <snapshots>
            <enabled>true</enabled>
            <checksumPolicy>warn</checksumPolicy>
          </snapshots>
        </repository>
      </repositories>
    </profile>
 
  <activeProfiles>
    <activeProfile>my_archetype</activeProfile> <!-- 这个id是上面的profile id -->

 

 

posted @ 2024-05-14 15:14  意犹未尽  阅读(5)  评论(0编辑  收藏  举报