maven自定义骨架
Maven 的 archetype 技术,为新建标准化的工程框架提供了方便。为自定义一套工程框架标准,可参考以下步骤操作:
1,创建一个项目的原型
2,在项目根目录执行命令:mvn archetype:create-from-project,新生成的archetype在target/generated-sources/archetype目录

archetype-resources目录下模版工程的资源元文件,这些元文件是生成工程的时候需要用到,该目录下必须要有一个顶级pom文件,子文件夹代表了模块定义。archetype目录下的pom文件是用来定义骨架groupId,artifactid信息的,用于创建应用的时候。
3,进入target/generated-sources/archetype/src/main/resources 目录,手工调整相关archetype源码. 需进行变量替换的文件,需在archetype-metadata.xml中开启filtered="true";将资源中需要订制的地方替换成相应的${groupid},${artifactid},${package},这样maven会在创建项目的过程中自动将这些值传入的相应要替换的地方
比如:
<groupId>${groupId}</groupId>
<artifactId>${artifactId}</artifactId>
<version>${version}</version>
那创建项目的时候回自动替换里面的变量,如果创建的文件名里面有变量,那使用__artifactId__这个格式。
archetype-metadata.xml文件中重要的几个属性如下:
a.属性变量定义
<requiredProperties>
<requiredProperty key="appName">
<defaultValue>helloworld</defaultValue>
</requiredProperty>
<requiredProperty key="groupId">
<defaultValue>com.helloworld</defaultValue>
</requiredProperty>
<requiredProperty key="artifactId">
<defaultValue>helloworld</defaultValue>
</requiredProperty>
</requiredProperties>
这个不是必填。
b.项目子模块定义
<module id="${rootArtifactId}-biz" dir="__rootArtifactId__-biz" name="${rootArtifactId}-biz">
</module>
module有三个属性,解释如下:
id :相当于工程的artifactId.
dir :相当于工程源文件在archetype-resources里对应的directory.
name :模块的名字.
c.项目文件集定义
<fileSets>
<fileSet encoding="UTF-8">
<directory>assets/css</directory>
<includes>
<include>**/*.css</include>
</includes>
</fileSet>
</fileSets>
4,在..\target\generated-sources\archetype下有个pom.xml文件,编辑里面的
<groupId>com.***.***.archetype</groupId>
<artifactId>***-archetype</artifactId>
<version>*.*</version>
这样可以发布到自己想要的位置,如果不修改那就放入默认的位置。
5,在archetype根(..\target\generated-sources\archetype)目录执行:mvn clean install,将该archetype传到本地的maven仓库
6,通过mvn archetype:generate -DarchetypeGroupId=***.archetype -DarchetypeArtifactId=***-archetype -DarchetypeVersion=**就可以创建项目了。
maven自定义骨架的更多相关文章
- MAVEN 自定义骨架
1)根据原由的骨架先创建出一个骨架模板,例如创建一个web框架可以先通过命令 mvn archetype:generate -DarchetypeCatalog=internal 创建出一个web的 ...
- Linux使用IDEA配置maven的web项目骨架archetype(模板) 自定义骨架
说明:本文说的骨架就是 archetype,也可以理解为模板,总是就是指你创建项目时的基本配置. 前言:在使用IDEA创建maven的web项目时,一般都是直接使用提供的默认web项目,如图 然而创建 ...
- 【Maven实战技巧】「插件使用专题」Maven-Archetype插件创建自定义maven项目骨架
技术推荐 自定义Archetype Maven骨架/以当前项目为模板创建maven骨架,可以参考http://maven.apache.org/archetype/maven-archetype-pl ...
- Spring框架学习笔记(4)——SSM整合以及创建Maven自定义模版
Spring+Spring MVC+MyBatis+Maven SSM整合的核心还是Spring+MyBatis的整合,回顾一下MyBatis操作数据库流程,我们是使用一个SQLSessionFact ...
- idea中配置maven的骨架本地下载方式
由于我们使用maven的骨架创建的时候,maven需要联网进行骨架的下载,如果断网了,则骨架不能正常下载,为了防止这种情况,我们可以配置本地下载,当已经联网下载过一次后,以后每次进行下载都会从本地下载 ...
- Maven自定义Archetype
Maven提供了archetype帮助我们快速构建项目骨架,很便捷.但是,中央仓库中的archetype版本过于陈旧,构建好项目后,需要修改很多信息,甚是麻烦,那么如何自定义个archetype就显得 ...
- Maven 自定义 archetype
最近在公司经常要写一些 storm-job 工程的骨架(archetype)非常相似,为了能够将大家的工程结构固定下来以及节约建工程的成本,所以给组内自定义了maven-archetype,中途遇到了 ...
- maven自定义脚手架(快速生成项目)
Maven之自定义archetype生成项目骨架 利用脚手架生成 新项目 命令行方式 mvn archetype:generate \ -DarchetypeGroupId=com.xxx \ -Da ...
- Maven自定义Archetype(zz)
原文地址:http://www.cnblogs.com/javalouvre/p/5858162.html Maven提供了archetype帮助我们快速构建项目骨架,很便捷.但是,中央仓库中的arc ...
随机推荐
- 怎样以学习单片机为契机,逐步成为优秀的project师
现状 不知道阅读本文的读者,在初学单片机时是否和我以前一样迷茫.看到各种新的术语,疑惑不解:不知道从何学起:照着书中的样例一步一步做都没有问题,可是自己试着做东西,遇到各种问题却不会解决,向别人提问, ...
- 对sql进行分页处理(Oracle版)
直接代码 /// <summary> /// 对sql进行分页处理 /// </summary> /// <param name="sql">& ...
- 30个HTML初学者建议
The most difficult aspect of running Nettuts+ is accounting for so many different skill levels. If w ...
- Javascript技巧实例精选(2)—文字水平方向上动态漂移
>>点击这里下载html源文件代码<< 采用Javascript实现,文字水平方向上动态漂移 这是截图 这是相应的Javascript代码 <marquee behavi ...
- enode框架
enode框架 2.0 step by step之整体架构介绍 前言 enode框架简介 enode架构图 command handler一次只处理一个command 让domain生活在in mem ...
- 解决Xcode升级7.0后,部分.a静态库在iOS9.0的模拟器上,link失败的问题
简单描述一下这个问题:我们项目中使用了Google大神开发的LevelDB键值对数据库,在Xcode6,iOS8的环境下,编译好的.a静态库是可以正常使用的.但是升级后,发现在模拟器上无法link成功 ...
- 替换__thread的一种方式,实现TLS功能
TLS是由于多线程编程带来的产物,主要是为了解决线程资源局部化,具体内容网上有很多介绍.有很多地方已经支持了该功能,但有些地方没有,下面是GCC的一些介绍,反正具体看实际使用情况: 5.51 Thre ...
- 编译linux内核时出错
在编译linux内核的时候使用make menuconfig 可能出现下面的错误 *** Unable to find the ncurses libraries or the*** required ...
- RTB撕开黑盒子 Part 3: Beyond Surplus
在本文中,我将解释如果要对整个推广计划最大化利润,决定是否应该出价的应该是期望回本率(ROI),而不是期望利润,这与我们以前介绍的有所不同.在Datacratic,我们已经在2012年底切到了基于RO ...
- DBCC用法汇总
本文摘自http://www.cnblogs.com/lilycnblogs/archive/2011/03/31/2001372.html 留作查阅 DBCC是SQL Server提供的一组控制台命 ...