maven archetype二三事
maven plugin
创建maven archetype 骨架的plugin是
xml
org.apache.maven.plugins
maven-archetype-plugin
${maven-archetype-plugin.version}
${source.encoding}
${jdk.version}
${jdk.version}
关于maven archetype的详细介绍参考:https://maven.apache.org/archetype/maven-archetype-plugin/plugin-info.html
## 从项目中创建骨架
> mvn archetype:create-from-project
上面的命令是最简单的命令,maven会自己根据设定的规则进行创建。
但有些时候,maven没有那么智能,比如它取当前project的packagename的时候,会取最短的包名作为包名的占位符,在最后生成的archetype中进行占位。
此时,需要手动指定当前项目模板的packagename替换maven自己选择的packageName。命令如下:
>mvn archetype:create-from-project -DpackageName=cn.edu.lizhao
除此之外,archetype插件还有其它参数,详情参考maven官方声明:https://maven.apache.org/archetype/maven-archetype-plugin/create-from-project-mojo.html
>The create-from-project goal enable the user to provide some sensible configuration using the system properties or a property file.The system properties permits the user to define the groupId, artifactId, version of the created archetype. They also permits to override the resolved package and to create a partial archetype.When used, the property file takes precedence over the system properties. It is also the only way to define additional properties in the archetype.
来源: https://maven.apache.org/archetype/maven-archetype-plugin/advanced-usage.html
## 将创建的archetype安装到本地
>mvn install
>mvn archetype:crawl //更新索引
此命令需要进入到:
>\target\generated-sources\archetype
## 原理猜想
在执行从archetype:create-from-project的时候,maven会自己根据设定的规则,提取出一个新的项目,这个项目也是maven项目,只是相关的代码会增加占位符,同时项目的打包方式改为`maven-archetype`。至此archetype插件的任务就完成了。之后就是普通的install、deploy等。maven主程序根据packaging的方式进行打包,并在install的时候更新archetypecatalog,这样就可以找到该archetype了。
因此,需要学习的点:
1. archetype插件在create-from-project的时候设定了哪些规则,这部分可以通过看源码了解,或者通过插件配置的参数大概猜一下
2. 对archetype的goal等的用法熟练使用
## 将创建的archetype发布到私服
>mvn deploy
这一步需要配置好pom文件的distribute相关节点,具体可以参考mvn deploy相关资料。
## 用archetype生成项目
>mvn archetype:generate
这一步只是archetype插件的generate goal,具体参数可以参考前面的链接。
maven archetype二三事的更多相关文章
- maven(项目管理工具系列 maven 总结二)
♣maven是什么? ♣maven下载.安装 ♣了解maven仓库 ♣eclipse配置maven ♣创建maven项目 ♣把maven项目转化为web项目 1.maven是什么? Maven是一个项 ...
- maven archetype生成自定义项目原型(模板)
maven archetype可以将一个项目做成项目原型,之后只需要以此原型来创建项目,那么初始创建的项目便具有原型项目中的一切配置和代码.通俗讲就是一个项目模板. eclipse中那些快速生成mav ...
- Maven-003-私人定制 maven archetype
在使用 Maven 创建项目模块的时候,依据其默认的 archetype 模板,创建出的目录.及默认的单元测试工具为 JUnit 3.8.1,而且有些常用的资源文件目录.配置文件(例如:Log4J 的 ...
- Java并发编程二三事
Java并发编程二三事 转自我的Github 近日重新翻了一下<Java Concurrency in Practice>故以此文记之. 我觉得Java的并发可以从下面三个点去理解: * ...
- linux杂记(十二?) 关于账号和密码的二三事
关于密码的二三事 关于账号和密码的二三事 久了不更linux的相关知识,实在是懒得想内容点(纯粹是懒).那么今天就来谈谈关于linux密码和账号的重要概念. 假如你的主机遭到入侵,那么对方的第一个侵入 ...
- 自定义Maven Archetype模板
1. 目的 自定义Maven Archetype模板目的为了把自己辛苦搭建的基础项目可以作为模板, 方便以后可以快速的创建类似项目,免去每次搭建的麻烦 2.把基础项目打包生成archetype项目 在 ...
- MySQL5.7关于密码二三事
MySQL5.7关于密码二三事 第一个:update user set password=password('root') where user='root' and host='localhost' ...
- Java中的匿名内部类及内部类的二三事
匿名内部类适合创建那些只需要使用一次的类,它的语法有些奇怪,创建匿名内部类会立即创建一个该类的实例,这个类定义立即消失,且不能重复使用. 定义匿名类的格式如下: new 实现接口() |父类构造器(实 ...
- Maven Archetype简介以及搭建
为什么会写这篇文章,因为公司先在构建项目骨架都是用的 maven archetype ,身为一个上进的渣渣猿,自己还是有必要了解下这个东西的. Archetype介绍 Archetype 是一个 Ma ...
随机推荐
- 领域驱动和MVVM应用于UWP开发的一些思考
领域驱动和MVVM应用于UWP开发的一些思考 0x00 起因 有段时间没写博客了,其实最近本来是根据梳理的MSDN上的资料(UWP开发目录整理)有条不紊的进行UWP学习的.学习中有了心得体会或遇到了问 ...
- 【WCF】自定义错误处理(IErrorHandler接口的用法)
当被调用的服务操作发生异常时,可以直接把异常的原始内容传回给客户端.在WCF中,服务器传回客户端的异常,通常会使用 FaultException,该异常由这么几个东东组成: 1.Action:在服务调 ...
- 微信小程序中利用时间选择器和js无计算实现定时器(将字符串或秒数转换成倒计时)
转载注明出处 改成了一个单独的js文件,并修改代码增加了通用性,点击这里查看 今天写小程序,有一个需求就是用户选择时间,然后我这边就要开始倒计时. 因为小程序的限制,所以直接选用时间选择器作为选择定时 ...
- 《LoadRunner12七天速成宝典》签售会2016-12-17北京
报名地址: http://www.after615.com/actives/s?id=3141&time=1480042829608&sign=9ac8e25e9ab3cf57f613 ...
- 常用 meta 整理
<!-- 针对手持设备优化,主要是针对一些老的不识别viewport的浏览器,比如黑莓 --> <meta name="HandheldFriendly" con ...
- Android中的LinearLayout布局
LinearLayout : 线性布局 在一般情况下,当有很多控件需要在一个界面列出来时,我们就可以使用线性布局(LinearLayout)了, 线性布局是按照垂直方向(vertical)或水平方向 ...
- Android——eclipse下运行android项目报错 Conversion to Dalvik format failed with error 1解决
在eclipse中导入android项目,项目正常没有任何错误,但是运行时候会报错,(clean什么的都没用了.....)如图: 百度大神大多说是jdk的问题,解决: 右键项目-Properties如 ...
- redis大幅性能提升之使用管道(PipeLine)和批量(Batch)操作
前段时间在做用户画像的时候,遇到了这样的一个问题,记录某一个商品的用户购买群,刚好这种需求就可以用到Redis中的Set,key作为productID,value 就是具体的customerid集合, ...
- SQL中字符串拼接
1. 概述 在SQL语句中经常需要进行字符串拼接,以sqlserver,oracle,mysql三种数据库为例,因为这三种数据库具有代表性. sqlserver: select '123'+'456' ...
- phpstorm 配置 xdebug调试工具
前言 php是脚本型程序 每次出错都要手动exit断点程序不是很方便 哪里有需求哪里就有生产,Xdebug可以实现对php的断点调试.下面将我个人的安装经历分享给大家. 运行环境 windows ...