Maven之自定义archetype生成项目骨架(一)

摘要:使用过Maven的人都知道maven中有许多功能都是通过插件来提供的,今天我们来说一下其中的一个插件:maven-archetype-plugin

,通过该插件可以自定义符合我们自己需求的archetype。


一:什么是Archetype

总之,原型是一个Maven项目模板工具包。一个原型被定义为从其中相同类型的所有其它事情是由一个原始图案或模型。名称配合,因为我们正在努力提供一种系统,该系统提供了一种生成Maven项目的一致的手段。原型将帮助作者为用户创建Maven项目模板,并为用户提供了手段,产生的这些项目模板参数化的版本。


使用原型提供了一个很好的方式,迅速使开发人员在与您的项目或组织采用最佳实践一致的方法。在Maven的项目中,我们使用原型,试图让我们的用户和运行尽可能快地通过提供展示许多的Maven的功能,同时引入新的用户通过采用Maven的最佳实践的示例项目。在几秒钟内一个新的用户可以有一个工作Maven项目作为跳板用于调查更多的功能,Maven中。我们也试图使原型机制添加剂和由我们的意思是允许一个项目的一部分被捕获在一个原型,使得项目的部件或方面可以被添加到现有的项目。这方面的一个很好的例子是Maven站点原型。如果,例如,您使用的快速启动原型生成一个工作项目,你可以迅速通过使用现有项目中的网站原型创建网站的项目。你可以做这样的事与原型。


您可能要在组织内部规范J2EE开发,所以你可能要提供原型为EJB,或者,或者您的Web服务的战争。一旦这些原型创建和部署在您的组织的资源库,他们都可以在组织内使用的所有开发人员。


上面是我根据maven官网在百度翻译出来的,大家将就着看,大概意思就是archetype是Maven项目模板工具包,也就是一个模板工程。


二:使用archetype创建项目

mvn archetype:generate

上面的命令执行后会输出很多maven官方提供的archetype,但是这些archetype生成的项目骨架都不能够满足我们的需求,所以这就需要我们自己开发一个archetype来满足我们自己的开发需求,下面我把我自己自定义这个archetype的过程记录一下方便日后回忆。


三:创建自定义的archetype项目

1.首先使用sts(spring的一款开发工具,下载地址到spring官网)创建一个maven project,然后把配置好的一些公用的东西放到相应的目录下面比如说会将一些常用的java代码存放到src/main/java目录下面;会将一些通用的配置文件放到src/main/resources目录下面;如果是javeEE工程,还会有一些jsp等等的文件存放到src/main/webapp目录下面,如下图所示:



2.然后在创建的maven project的pom.xml文件中添加archetype插件,如下面所示:

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><parent><groupId>org.micaicms</groupId><artifactId>micaicms-pom</artifactId><version>1.0</version></parent><artifactId>micaicms-web-archetype</artifactId><packaging>jar</packaging><name>micaicms web archetype</name><description>micaicms-web-archetype</description><distributionManagement><repository><id>releases</id><name>Micaicms Releases</name><url>http://127.0.0.1:8081/nexus/content/repositories/releases/</url></repository><snapshotRepository><id>snapshots</id><name>Micaicms Releases</name><url>http://127.0.0.1:8081/nexus/content/repositories/snapshots/</url></snapshotRepository></distributionManagement><build><pluginManagement><plugins><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-archetype-plugin</artifactId><version>2.2</version></plugin><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-compiler-plugin</artifactId><configuration><source>1.5</source><target>1.5</target></configuration></plugin><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-resources-plugin</artifactId><configuration><encoding>UTF-8</encoding></configuration></plugin></plugins></pluginManagement></build></project>


3.运行你自己配置好的自定义的archetype项目

先执行mvn clean install
安装该archetype项目到你的本地仓库

发布该archetype项目到你的本地私服(nexus)

注意;这里如果你需要发布这个archetype到你的本地私服上去,那么需要在maven里面配置权限,主要是maven里面的settings.xml文件,我
的settings.xml文件配置如下,配置好以后就可以执行发布命令了


再执行mvn deploy

4.查看你刚才发布到nexus私服上去的archetype,如下图:




四:在eclipse/sts开发工具中配置你发布到私服上的自定义的archetype

1.打开你的开发工具,eclipse或者sts,我这里是sts


2.选择Window->Preferences->Maven->Archetypes


3.点击Add Remote Catalog,输入你的nexus私服中archetype的地址,我这里是
http://127.0.0.1:8081/nexus/content/groups/public/archetype-catalog.xml
输入Description,随便输入都可以,我这里是micaicms-web-archetype


4.点击Ok,点击Apply


5.重新启动你的开发工具eclipse或者sts


五:使用自定义的archetype生成自定义的项目骨架

1.选择New->Maven Project->Next


2.选择你配置好的archetype,如下图:



3.输入对应的groupId,artifactId,package,如下图:
因为我已经新建过该项目了,所以我这里不能点击Finish,你们的应该可以



4.最后生成的项目骨架如下图:



5.修改数据库配置文件,导入初始化sql脚本,如下图:



6.部署项目到tomcat下面访问即可,默认的访问路径为:ht:tp://localhost:8080/micaicms-ssmb/project/list


六:Maven的自定义archetype源码工程下载地址:

https://github.com/sxdtzhaoxinguo/micaicms-web-archetype


七:Maven的自定义archetype生成的基础项目骨架工程的下载地址:

https://github.com/sxdtzhaoxinguo/micaicms-ssmb




本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/443425.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Hessian Binary Web Service Protocol远程接口调用入门

摘要&#xff1a;Hessian是一个轻量级的remoting onhttp工具&#xff0c;使用简单的方法提供了RMI的功能. 相比WebService&#xff0c;Hessian更简单、快捷。采用的是二进制RPC协议&#xff0c;因为采用的是二进制协议&#xff0c;所以它很适合于发送二进制数据。 hessian类似于…

Windows+Nginx+Tomcat搭建负载均衡和集群环境同时实现session共享(一)

摘要&#xff1a;随着网站的访问量越来越多&#xff0c;所以就考虑给网站增加服务器了&#xff0c;现在比较流行的做法就是给网站做集群环境&#xff0c;下面我把我做的过程记录一下&#xff0c;方便日后查看&#xff0c;同时也希望可以帮助到有需要的朋友&#xff01; 一&…

Eclipse,MyEclipse 安装SVN插件

摘要&#xff1a;MyEclipse10.5安装SVN插件最简单的方式&#xff1a; 一&#xff1a;先到SVN官网下载对应版本的SVN插件包&#xff0c;我这里下载的site-1.10.10版本 下载地址&#xff1a;http://subclipse.tigris.org/servlets/ProjectDocumentList?folderID2240 二&#xf…

MyEclipse 10.5 安装SVN插件

摘要&#xff1a;MyEclipse10.5安装SVN插件最简单的方式&#xff1a; 一&#xff1a;先到SVN官网下载对应版本的SVN插件包&#xff0c;我这里下载的site-1.10.10版本 下载地址&#xff1a;http://subclipse.tigris.org/servlets/ProjectDocumentList?folderID2240 二&#xf…

PHP获取服务器端的相关信息

摘要&#xff1a;PHP获取服务端端的相关信息 一&#xff1a;代码&#xff1a; <!DOCTYPE html> <html> <head><title>第一个PHP程序(获取服务器信息)</title><meta http-equiv"content-type" content"text/html"; charse…

Spring+Hibernate+SpringMVC+MySql实现配置多个数据源!

摘要&#xff1a;在日常的工作中&#xff0c;很多时候我们进行项目开发的时候&#xff0c;一个项目有可能不止用到一个数据源&#xff0c;为了提高数据库的水平伸缩性&#xff0c;需要对多个数据库实例进行管理&#xff0c;需要配置多数据源! 一&#xff1a;代码截图&#xff…

CentOS下安装Memcached,Linux下安装Memcached,centos下安装memcached,linux下安装memcached...

摘要&#xff1a;最近在看《大型分布式网站架构设计与实践》这本书&#xff0c;把其中的学习过程记录一下&#xff0c;以便日后复习。 一&#xff1a;Memcached简单介绍和描述&#xff1a; Memcached 是一个高性能的分布式内存对象缓存系统&#xff0c;用于动态Web应用以减轻数…

一个微信公众号接入另一个微信公众号的内容

摘要&#xff1a;近日来了这么一个需求&#xff0c;就是客户想在他们的微信公众号里面直接接入我们微信公众号的文章&#xff0c;于是我便开始baidu&#xff0c;google&#xff0c;最后发现了一个新的搜索引擎&#xff1a;“搜狗微信搜索”&#xff0c;该搜索引擎是最近才上线的…

SQL Server将数据库中的表复制到另一个数据库

在使用SqlServer的过程中&#xff0c;我们可能需要将表从一个数据库复制到另一个数据库中&#xff0c;今天&#xff0c;小编为大家介绍这种操作的具体方法及步骤。 一&#xff1a;复制表结构&#xff1a; 1.首先&#xff0c;打开并连接Sql Server&#xff0c;在源数据库Sourc…

SQL Server cast() 批量更新列内容

摘要&#xff1a;有这样一个需求&#xff0c;需要把数据表中的列批量更新一下&#xff0c;给后面的数字都增加20&#xff0c;如下图&#xff1a; 正确的sql如下&#xff1a; update tbl_papers_test set name 执业护士考试儿科护理学cast((cast(substring(name,12,datalength(…

SQL Server 批量更新字段值为ROW_NUMBER()+列名称

摘要&#xff1a;有这样一个需求&#xff0c;需要把数据表中的列名称的数据按行号重新排序并更新一下&#xff0c;这里用到了ROW_NUMBER()函数。 一&#xff1a;需求如下图&#xff1a; 二&#xff1a;通过执行如下sql语句实现了上面的需求&#xff0c;如下&#xff1a; update…

Maven+Tomcat的热部署方案

摘要&#xff1a;在日常的开发中&#xff0c;热部署是个非常重要的事&#xff0c;下面就介绍下Maven&#xff0c;Tomcat如何实现热部署! 第一步&#xff1a;配置Tomcat的登陆的用户名与密码 E:\apache-tomcat-7.0.68\conf\tomcat-users.xml 从第35行开始配置 <role rolenam…

readonly与disabled属性在css中区别

论readonly与disabled在css中区别 之前在项目中遇到的一个问题&#xff0c;现在想把它记录下来。 当项目需求上需要在文本框中禁用输入某个值的时候&#xff0c;我第一个反应是用了disabled&#xff0c;因为之前一直接触的都是disabled。但当我需要提交FROM表单的时候&#xf…

SuperMap iDesktop 9D中实现地图配准

SuperMap iDesktop 9D 中实现地图配准 今天在学习SuperMap 过程中无意间接触地图配准&#xff0c;实现功能之后&#xff0c;却没有了解它的作用是什么。经过学习&#xff0c;方才知道&#xff0c;地图配准其实是用在数字化地图之前&#xff0c;主要是对地图进行坐标和投影的校…

jQuery 拖拽窗体

jQuery 拖拽窗体事件 今天给大家分享一个简单拖拽事件&#xff0c;可以通过拖拽事件实现数据的传递,已达到良好的交互&#xff0c;可以实现更为可观的效果。 具体来说&#xff0c;只有三部基本的操作&#xff1a; 第一&#xff1a;当鼠标按下时触发的事件&#xff08;onmoused…

《SuperMap GIS二次开发MVC实战训练---江海区慢性病防治院系统》项目研发阶段性总结

《SuperMap GIS二次开发MVC实战训练—江海区慢性病防治院系统》项目研发阶段性总结 作者&#xff1a;爱怡同学 本次任务完成时间&#xff1a;2019年1月1日&#xff5e;2019年1月10日 开发工具与关键技术&#xff1a;SuperMap iDesktop 9D &#xff0c;MVC&#xff0c; SuperMa…

《帝友 P2P 网络借贷系统》

《帝友 P2P 网络借贷系统》 本次任务完成时间&#xff1a;2018年12月1日&#xff5e;2018年12月15日 开发工具与关键技术&#xff1a;Microsoft Visual Studio &#xff0c;SQL 完成模块功能&#xff1a;后台认证管理篇 项目流程图&#xff1a; &#xff08;1&#xff09; 事…

C#验证码

验证码生成 在学习以及做项目的过程中&#xff0c;我们有时候遇到需要验证码的情况&#xff0c;然后需要对它进行判断是否正确。但首先&#xff0c;我们就必须要生成验证码&#xff0c;才能够对其进行判断。 首先&#xff0c;这是控制层代码&#xff1a; //生成验证码public…

jquery工具箱旋转动画效果

jquery工具箱旋转动画效果 今天给大家分享一个工具箱的旋转动画效果&#xff0c;因为做GIS项目的时候所需要到&#xff0c;这是我在懒人之家看到的一个jquery鼠标点击按钮图标旋转弹出图标菜单旋转动画。 首先&#xff0c;可以引用插件&#xff0c;但因为项目所需&#xff0c;…

.NET短信接口验证

.NET短信接口验证 之前遇到的一个问题&#xff0c;因为没有接触过&#xff0c;所以自己上网查阅过资料也向他人请教以及老师&#xff0c;.NET短信接口调用&#xff0c;其实&#xff0c;网上有许多免费的短信接口平台&#xff0c;但也是有限度的&#xff0c;如果发送的数量过多…