MAVEN自定义项目骨架
如果你想定义一个maven工程模板,有一种很快的方法:
1.定义你开发环境的目录结构,写一个pom.xml.
2.使用命令,mvn archetype:create-from-project 创建一个工程模板。
3.在target目录下执行mvn install.执行完之后你就可以使用你的模板了。
4.执行命令,mvn archetype:generate -DarchetypeCatalog=local就可以开始使用你定义的模板创建工程。
例子:
1.创建目录结构如下:
Demo
--src
--main
--resources
--test
--webapp
pom.xml
pom.xml内容:
<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/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>gDemo</groupId>
<artifactId>demo</artifactId>
<packaging>jar</packaging>
<version>1.0</version>
<name>Maven Quick Start Archetype</name>
<url>http://maven.apache.org</url>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
</dependencies>
</project>
2.在Demo目录下执行命令,mvn archetype:create-from-project
3.在创建的target\generated-sources\archetype目录下执行,mvn install.
到此你的工程模板创建完成。在以后开发中就可以使用它。
4.执行mvn archetype:generate -DarchetypeCatalog=local会看到模板选项,选择刚才创建的模板,然后进行下面的设置。
到此恭喜你,成功使用。
江湖上多的是功能华丽的项目原型/骨架生成工具,但最后,反而是功能简单的Maven Archetypes渐渐有了一统的希望。 无它,先把自己收拾得简单易用,然后作为一个江湖大佬(maven)的"官方"小弟,再有另一些江湖大佬(appfuse,strust2,cxf)使用示范一下,就是现在的上位秘诀。
和很多生成工具一样,Maven Archetypes 的功能就是从Velocity模板中替换变量,并根据package 名扩展一下java文件的目录结构而已。
Advanced Usage 讲解了一个完全的Maven Archetype周期:
* mvn archetype:create-from-project 先从一个已有的项目生成Archetype模板到 target/generated-sources/archetype。
这还是需要程序自己有点小聪明的,要找准package name和变量,将变量转为符号,将目录结构收缩。
* 进到目录中,mvn install 将Archetype模板安装到本地maven仓库里。
* 在新的目录中,mvn archetype:generate -DarchetypeCatalog=local ,交互式的输入项目名,package名等变量,即生成项目。
这里,2.0 Alpha3版比原来的1.0 Alpha7改进良多,一是有了从已有项目爬出模板来的命令,二是生成项目时有了交互式的输入,三是控制文件的改进(支持Ant语法批量定义等)。
新的控制文件见META-INF/maven/archetype-metadata.xml ,原来1.0版的文件已经作废。
控制文件可以新增自己的变量,控制目录是否需要velocity替换变量,是否需要根据package名扩展目录树。
详见FAQ中的How metadata on an archetype is stored?
有了上面的资料 进行下面的尝试就很容易了
1 mvn archetype:create-from-project 先从一个已有的项目生成Archetype模板到 target/generated-sources/archetype
2 进入target/generated-sources/archetype
mvn install(将Archetype模板安装到本地maven仓库里。)
3 在新的目录中,mvn archetype:generate -DarchetypeCatalog=local
会让你选择数字 就是项目名称
MAVEN自定义项目骨架相关推荐
- 【Maven】高级应用:私服(nexus)搭建及使用、自定义项目骨架(archtype)
当我们执行 Maven 构建命令时,Maven 开始按照以下顺序查找依赖的库: Maven版本: version(SNAPSHOT):快照版本.随时更新不稳定的,每个版本都只是特定时间点的快照.同时, ...
- maven生成项目骨架时报错ResourceManager : unable to find res
生成骨架时生成archetype.xml脚本 问题描述:没有方法通过*号批量匹配文件 [INFO] -------------------------------------------------- ...
- 【Maven实战技巧】「插件使用专题」Maven-Archetype插件创建自定义maven项目骨架
技术推荐 自定义Archetype Maven骨架/以当前项目为模板创建maven骨架,可以参考http://maven.apache.org/archetype/maven-archetype-pl ...
- (转)Maven之自定义archetype生成项目骨架
背景:最近在开发一个项目的基础构件,在以后项目的开发过程中可以直接使用该构件快速的生成项目骨架进行开发. 摘要:使用过Maven的人都知道maven中有许多功能都是通过插件来提供的,今天我们来说一下其 ...
- Maven之自定义archetype生成项目骨架(一)
摘要:使用过Maven的人都知道maven中有许多功能都是通过插件来提供的,今天我们来说一下其中的一个插件:maven-archetype-plugin ,通过该插件可以自定义符合我们自己需求的arc ...
- maven自定义脚手架(快速生成项目)
Maven之自定义archetype生成项目骨架 利用脚手架生成 新项目 命令行方式 mvn archetype:generate \ -DarchetypeGroupId=com.xxx \ -Da ...
- Maven自定义Archetype项目模板
前言:在某课网上学习到可以使用命令mvn archetype:create-from-project来创建自己的项目模板(文中提及的项目模板即 原型 archetype),对此我十分感兴趣.但是,遗憾 ...
- maven自定义骨架的过程,已经使用详解
maven骨架是骨架插件实现的,整个骨架的流程用下面的整个流程图表示在准确不过了,图来源maven官网. maven骨架介绍: 使用mave做创建项目的时候,很自然用用到maven自带的骨架,例如: ...
- 使用Maven archetype 自定义项目脚手架
An archetype is defined as an original pattern or model from which all other things of the same kind ...
最新文章
- go读取最后一行_CPU缓存体系对Go程序的影响
- Verilog初级教程(3)Verilog 数据类型
- 毫秒级的时间处理上G的图片(生成缩略图)
- 讲php fpm的书,细说PHP-fpm
- 龙芯开源社区上线.NET主页
- pytorch 和 tensorflow2.0 方法替换
- java多线程编程基础
- 电脑没有音频设备怎么办
- 编写一个matlab矩阵函数,MATLAB矩阵 及图像函数
- 软件评测师-13.软件测试技术与应用
- UPC、EAN、ISBN的编码介绍
- html中加分割线,多种HTML分割线
- 我推崇的流行唱法:美國Speech Level Singing的介紹和討論(推荐)
- 【数据挖掘】啤酒与尿布
- FFmpeg视频录制(WIN)
- 用批处理文件把.txt后缀的文件全部换成其他后缀文件
- python如何实现语音识别
- Java实现 LeetCode 456 132模式
- 220V工频正弦波逆变器设计
- python 药房管理
热门文章
- python怎么读取石墨表格_python – 使用AMQP和石墨9.9
- py文件输出结果_24python中编码格式和文件操作
- bootstrap模态框 遮挡_Bootstrap Modal遮罩弹出层
- Ubuntu 20.04 linux系统安装docker
- 数据结构之选择排序:直接选择排序
- 计算机网络之应用层:2、DNS域名解析系统
- centos7安装MongoDB(亲测)
- XXE漏洞利用技巧(XML注入):从XML到远程代码执行
- sigprocmask()函数实例详解,设置信号规定时间堵塞,取消信号堵塞
- python paramiko 模块简介(SSH2协议)