maven archetype可以将一个项目做成项目原型,之后只需要以此原型来创建项目,那么初始创建的项目便具有原型项目中的一切配置和代码.通俗讲就是一个项目模板.

eclipse中那些快速生成maven项目的插件,利用的就是maven的原型功能.所以如果我们自己生成满足我们特定需求的项目原型,也可以像使用插件那样快速搭建起基础项目代码.

1.首先我们创建一个新的maven项目(项目编码务必采用utf-8,至于为何后面会讲),而项目的artifactId务必选一些不容易重复的名字(原因后面说),推荐格式为xxx-xxx.我这里创建了一个shiro-auth的项目:

2.添加项目的功能代码和配置文件.并确保项目的编码格式为utf-8,在pom文件中增加如下配置:

    <properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>

3.执行maven命令archetype:create-from-project将当前项目转换成原型项目.target目录下的generated-sources目录下即为生成原型项目的代码.

4.编辑原型项目的pom文件,添加编码格式和发布的nexus地址:

<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<distributionManagement>
<snapshotRepository>
<id>snapshots</id>
<name>Snapshots</name>
<url>http://localhost:8081/nexus/content/repositories/snapshots/</url>
</snapshotRepository>
<repository>
<id>releases</id>
<name>Releases</name>
<url>http://localhost:8081/nexus/content/repositories/releases/</url>
</repository>
</distributionManagement>

5.执行maven命令deploy将原型项目发布到nexus仓库.

6.eclipse中点选Window---Preferences---maven---Archetypes,点选Add Remote Catalog,输入nexus中的地址并取一个描述名字.nexus的地址形如:

http://localhost:8081/nexus/content/groups/public/archetype-catalog.xml  ,为archetype-catalog.xml文件的地址.

7.创建一个maven项目,当选择Catalog时,选择我们刚刚起的描述名,如果为snapshot项目,还要选上下方的include snapshot archetype.如图:

8.输入新项目的Artifact,groupId等等基础信息.到此我们就利用模板快速的生成了一个新的maven项目.

记性好的可能要问了:为何要utf-8编码,为何要复杂名字?

答:1)我使用gbk后生成的模板项目,以此生成的新项目都是乱码,尝试各种指定编码未果,有高手有雅兴的试验出方案还请不吝指教.所以不想费时出岔子直接utf-8编码.

2)至于名字为何非得复杂,这个主要是新项目按照模板项目生成pom文件,模板中的原Artifact名会自动替换成新的名字,这样问题来了,这个只是个字符串的全替换,所以如果出现Artifact与依赖中的某些字符串相同,那么生成新项目的时候会将这些依赖的名字也给替换掉.所以为了少麻烦,用一些不容易重复的名字比较好.

maven archetype生成自定义项目原型(模板)的更多相关文章

  1. 老大说新项目的结构和 xxx 项目一样就可以了,我 ……(使用 Maven Archetype 快速创建项目)

    前言 又要开发新项目了,还是创建新项目,怎么办?老大说按照 xxx 项目的结构创建一个新项目就可以了. 公众号:liuzhihangs,记录工作学习中的技术.开发及源码笔记:时不时分享一些生活中的见闻 ...

  2. 使用Maven Archetype创建Java项目模板

    1.over view 简而言之,Archetype是一个Maven项目模板工具包.原型被定义为一种原始的模式或模型,所有其他同类的东西都是从中产生的.当我们试图提供一个提供生成Maven项目的一致方 ...

  3. Jersey入门一:从Maven Archetype创建jersey项目

    1.用Ctrl+空格调出Spotlight搜索,输入ter调出终端窗口  2.在终端窗口进入将创建jersey项目的目录:  3.输入如下命令,创建一个名为的simple-service项目: m ...

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

      Maven之自定义archetype生成项目骨架(一) 标签: mavennexus插件 2015-07-15 16:40 2443人阅读 评论(0) 收藏 举报  分类: Maven技术(9)  ...

  5. (转)Maven之自定义archetype生成项目骨架

    背景:最近在开发一个项目的基础构件,在以后项目的开发过程中可以直接使用该构件快速的生成项目骨架进行开发. 摘要:使用过Maven的人都知道maven中有许多功能都是通过插件来提供的,今天我们来说一下其 ...

  6. Maven之自定义archetype生成项目骨架

    Maven之自定义archetype生成项目骨架(一) http://blog.csdn.net/sxdtzhaoxinguo/article/details/46895013

  7. 自定义Maven Archetype模板

    1. 目的 自定义Maven Archetype模板目的为了把自己辛苦搭建的基础项目可以作为模板, 方便以后可以快速的创建类似项目,免去每次搭建的麻烦 2.把基础项目打包生成archetype项目 在 ...

  8. 使用Maven Archetype插件构建Maven工程原型模板

    创建原型模板 1.在空目录运行archetype:generate上面的命令,待下载完必要的jar包后,首先需要输入内置的原型编号: 1 Choose archetype: 2 1: internal ...

  9. Maven实战04_使用Archetype生成项目骨架

    在上一章中的HelloWorld中,我们的项目遵循了一些Maven项目的约定 在项目的根目录中放置pom.xml 在src/main/java目录中放置项目的主代码 在src/test/java目录中 ...

随机推荐

  1. Openfire 4.1.0

    http://www.igniterealtime.org/downloads/index.jsp 服务器端口 接口 端口   类型 描述 所有的地址 5222 客户端到服务器 客户端使用标准端口连接 ...

  2. MapReduce Shuffle过程

    MapReduce Shuffle 过程详解 一.MapReduce Shuffle过程 1. Map Shuffle过程 2. Reduce Shuffle过程 二.Map Shuffle过程 1. ...

  3. linq的简单增删改查

    Linq高集成化的数据访问类,它会自动映射数据库结构,将表名完整映射成为类名,将列名完整映射成字段名数据库数据访问,能大大减少代码量.(反正最后结果就是不用写ado.Net那一套增删改查,有一套封装好 ...

  4. C#使用Graphics画圆写字

    画填充圆: Graphics gra = this.pictureBox1.CreateGraphics(); gra.SmoothingMode = System.Drawing.Drawing2D ...

  5. bootstrap-简洁实用的jQuery手风琴插件

    前端 <html lang="zh"> <head> <meta charset="UTF-8"> <meta htt ...

  6. sqlHelper做增删改查,SQL注入处理,存储值,cookie,session

    一.存储值 eg:登录一个页面,在进入这个页面之前你怎么知道它登没登录呢?[在登录成功之后我们把状态保存起来] 存储值得方式有两种,一种是cookie,一种是session 1.1区别: 代码: if ...

  7. EF Core1.0 CodeFirst为Modell设置默认值!

    当我们使用CodeFirst时,有时候需要设置默认值! 如下 ; public string AdminName {get; set;} = "admin"; public boo ...

  8. MySQL 5.7 create VIEW or FUNCTION or PROCEDURE

    1.视图 a. CREATE ALGORITHM = UNDEFINED DEFINER = `root`@`localhost` SQL SECURITY INVOKER VIEW `sakila` ...

  9. python查找指定目录下所有文件,以及改文件名的方法

    一: os.listdir(path) 把path目录下的所有文件保存在列表中: >>> import os>>> import re>>> pa ...

  10. php 实现设计模式之 享元模式

    <?php class Book{ public $title; public $author; public function __construct($title,$author){ $th ...