maven中archetype(原型)的使用及创建

article/2025/10/1 6:10:50

当我们在idea中创建项目时,经常会见到如下界面选择:


archetype也就是原型,准确说是一个项目模板,我们可以根据该模板来生成项目。

我就不介绍图形界面的创建方式了,一步一步太啰嗦了,我们用命令方式创建。

创建一个常见的webapp项目。

命令如下:

mvn archetype:generate -DgroupId=com.cj  -DartifactId=webAppDemo -DarchetypeArtifactId=maven-archetype-webapp -DinteractiveMode=false

archetype:generate //archetype代表插件名,generate代表目标,一个插件有多个目标

意思就是我们通过archetype插件创建一个webapp项目,项目的groupId是com.cj,项目id是webAppDemo.使用的项目archetype是maven-archetype-webapp。也就是一个java web项目。interactiveMode= false,代表在执行过程中,用户不能进行输入操作。默认是true,需要用户进行操作。

这里我们用到了一个插件archetype,执行他的generate目标来创建项目,当然还有其他目标,比如:create-from-project,下面我会介绍。

看下上面创建的结果和项目结构:


上面创建完的项目还不是很标准的webapp项目,我们还要作写处理,参考:idea创建webapp项目。


好了,上面介绍了如何使用原型创建项目,再来介绍如何根据自己的项目创建原型。

在项目的根目录,运行如下命令:

1.mvn archetype:create-from-project

它会生成archetype项目的相关文件。


2.mvn install

切换到项目的target/generated-sources/archetype/下,运行上面命令,我们要对archetype项目打包。


可以看到,我们已经生成了archetype项目。

那我们来测试下,根据我们生成的archetype项目来生成项项目,有2种方法。

方法1:利用自动生成的archetype-catalog.xml来创建项目。

当我们install后,会在~/m2.目录生成如下定义archetype文件:


<?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.chenjun</groupId><artifactId>springBootAop-archetype</artifactId><version>1.0.1</version><description>Spring Boot AOP Sample</description></archetype></archetypes>
</archetype-catalog>

我们运行:mvn archetype:generate -DarchetypeCatalog=local

表示利用本地archetype-catalog.xml定义的archetype来创建项目。




方法2:需要将install后的achetype项目copy到插件查找目录org\apache\maven\archetypes




可以看到,利用自己生成的archetype,能够生成我们自己的项目了。

PS:记得把自己installl的archetype的jar,手工copy到本地仓库的org\apache\maven\archetypes目录下,因为是从该目录下查找本地插件。




总结:

一、根据archetype创建项目的命令

      mvn archetype:generate -DgroupId=com.cj  -DartifactId=webAppDemo -DarchetypeArtifactId=maven-archetype-webapp -DinteractiveMode=false

二、根据项目生成archetype的命令

     1.mvn archetype:create-from-project     //生成archetype项目文件
     2.cd target/generated-sources/archetype/   //切换到archetype项目跟目录
     3.mvn install   //对archetype项目打包安装
     4.mvn archetype:generate -DarchetypeCatalog=local  //利用local本地提供的archetype创建项目


http://chatgpt.dhexx.cn/article/8OSSfg6n.shtml

相关文章

创建自定义的archetype(项目模板)

一、archetype简介 Archetype是一个Maven项目的模板工具包&#xff0c;它定义了一类项目的基本架构。Archetype为开发人员提供了创建Maven项目的模板&#xff0c;同时它也可以根据已有的Maven项目生成参数化的模板。通过archetype&#xff0c;开发人员可以很方便地将一类项目的…

Maven创建时archetype的选择说明

新建Maven project项目时&#xff0c;需要选择archetype。 那么&#xff0c;什么是archetype&#xff1f; archetype的意思就是模板原型的意思&#xff0c;原型是一个Maven项目模板工具包。一个原型被定义为从其中相同类型的所有其它事情是由一个原始图案或模型。名称配合&am…

Maven的Archetype简介

简单的说&#xff0c;Archetype是Maven工程的模板工具包。一个Archetype定义了要做的相同类型事情的初始样式或模型。这个名称给我们提供来了一个一致的生成Maven工程的方式。Archetype会帮助作者给用户创建Maven工程模板&#xff0c;并给用户提供生成相关工程模板版本的参数化…

c语言学习--强制类型转换

C语言中关于强制类型转换问题 由于朋友问到&#xff0c;所以整理了一份&#xff0c;若关于一些认识有错误还望指出...... ● 如果一个运算符两边的运算数类型不同&#xff0c;先要将其转换为相同的类型&#xff0c;即较低类型转换为较高类型&#xff0c;然后再参加运算&#xf…

列举三种强制类型转换

1 强制类型转换—String 这里主要列举了两种强制转换为字符串类型的方法&#xff0c;我们也在log控制台中验证了新的类型。 但是注意&#xff1a;null 和 undefined 这两个值没有 toString()方法。 2 强制类型转换—Number 这里我为大家列举了三种方法&#xff0c;但是注意后…

C语言(强制类型转换)

一.类型转换原则 1.升级&#xff1a;当类型转换出现在表达式时&#xff0c;无论时unsigned还是signed的char和short都会被自动转换成int&#xff0c;如有必要会被转换成unsigned int(如果short与int的大小相同&#xff0c;unsigned short就比int大。这种情况下&#xff0c;uns…

如何进行强制类型转换?

1、自动类型转换 自动类型转换就是编译器默默地、隐式地、偷偷地进行的数据类型转换&#xff0c;这种转换不需要程序员干预&#xff0c;会自动发生。 1) 将一种类型的数据赋值给另外一种类型的变量时就会发生自动类型转换&#xff0c;例如&#xff1a; float f 100; 100 是 i…

Java中的强制类型转换

尽管自动类型转换是很方便的&#xff0c;但并不能满足所有的编程需要。 例如&#xff0c;当程序中需要将 double 型变量的值赋给一个 int 型变量&#xff0c;该如何实现呢&#xff1f; 显然&#xff0c;这种转换是不会自动进行的&#xff01;因为 int 型的存储范围比 doub…

C++的四种强制类型转换

目录 1、C语言中的类型转换 2、为什么C需要四种类型转换 3、C强制类型转换 static_cast reinterpret_cast const_cast dynamic_cast 4、RTTI&#xff08;了解&#xff09; 5、常见面试题 1、C语言中的类型转换 在C语言中&#xff0c;如果赋值运算符左右两侧类型不同&#…

Java中强制类型转换

Java中强制类型转换 一、整型强转 类型转换都是小范围向大范围转换的&#xff0c;大范围往小范围转化需要用到强制转换&#xff0c;转换后的值会有所损失。 不同数据类型精度由小到大排列如下&#xff1a;char-->byte --> short --> int --> long --> float --…

(强制)类型转换方法

目录 一、C语言中的类型转换 二、C中的强制类型转换 2.1 static_cast 2.2 reinterpret_cast 2.3 const_cast 2.4 dynamic_cast 2.5 总结 一、C语言中的类型转换 在C语言中&#xff0c;若赋值运算符左右两侧类型不同&#xff0c;或者形参与实参类型不匹配&#xff0c;或…

rgba 兼容性处理

根据caniuse&#xff08;http://caniuse.com/#searchrgba&#xff09;&#xff0c;rgba兼容性为IE9以及以上浏览器。 实例代码&#xff1a; 1 <!doctype html>2 <html lang"en">3 4 <head>5 <meta charset"UTF-8" />6…

rgba无效php,ValueError:无效的RGBA参数:导致此错误的原因是什么?

我正在尝试使用来自:this stackoverflow post的想法创建一个三维彩色条形图。 首先,我使用以下代码创建一个三维条形图:import numpy as np import matplotlib.colors as colors import matplotlib.cm as cm import matplotlib.pyplot as plt from mpl_toolkits.mplot3d imp…

scss @for与rgba函数巧妙使用

SCSS for与rgba函数使用 这里再次记录下~~~ 文章目录 SCSS for与rgba函数使用效果图templatejsscss其他用法each参数变量...占位符选择器 %fooat-root 效果图 template <template><view class"list"><view class"item" :class"[item-…

RGBA: 了解

RGBA: 了解 rgba&#xff08;0&#xff0c;0&#xff0c;0&#xff0c;0&#xff09;四个值&#xff0c;前三个值的范围是0~255之间的整数或0-100的百分数 前三个值&#xff0c;描述的是三原色&#xff0c;最后一个则代表透明度选值在0~1之间&#xff1a; 0 表完全透明 0.5…

CSS3 RGBA颜色

前面我们一起探讨了一下CSS3 Gradient&#xff08;css3 渐变&#xff09;&#xff0c;今天我们一起来探讨一下CSS3中的RGBA。RGB对于大家来说一点不陌生&#xff0c;他就是红色R绿色G蓝色B&#xff0c;那现在我们所说的RGBA又是什么呢&#xff1f;说得简单一点就是在RGB的基础上…

CSS3 RGBA

转载自&#xff1a;http://www.w3cplus.com/content/css3-rgba 前面我们一起探讨了一下CSS3 Gradient&#xff08;css3 渐变&#xff09;&#xff0c;今天我们一起来探讨一下CSS3中的RGBA。RGB对于大家来说一点不陌生&#xff0c;他就是红色R绿色G蓝色B&#xff0c;那现在我们…

rgba的使用

rgba有四个值&#xff0c;前三个值都是数字&#xff0c;用来调颜色&#xff0c;最后一个值表示透明度&#xff0c;值在0-1。 1表示不透明&#xff0c;0表示透明&#xff0c;0-1之间可以调整透明的程度 最后值为0时 <!DOCTYPE html> <html><head><meta ch…

rgba无效php,rgba设置的背景透明没用啊

本来跟着老师的做的&#xff0c;设置了background-color: rgba(255,255,255,0.1);结果就成上边的样子了&#xff0c;求大神指导啊&#xff0c;啊啊啊啊.graySection .articlPreview .imgSection { width: 45%; } .imgSection img { width: 100%; } .graySection .articlPreview…

html边框白色实线rgba,CSS3 RGBA 属性高级用法

这个属性的兼容问题比较简单&#xff0c;IE8已经支持这个属性&#xff0c;IE6和IE7也可以通过hack支持。RGBA和CSS2里的RBG属性差不多&#xff0c;只是RGBA属性多了一个透明度的定义&#xff0c;CSS3标准里对RGBA属性的解释如下&#xff1a; /* 基本语法 */em { color: Rgba(re…