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,具体参数可以参考前面的链接。
posted @ 2016-04-21 14:37  每日懂一点  阅读(1634)  评论(0编辑  收藏  举报