根据需要定制Maven的ArcheType的好处不言而喻了,我就不再啰嗦。定制一般通过从Maven的项目构建,比手动构建省去了配置文件的编写、资源文件的复制等繁琐的操作,下面我们就说下从Maven项目中构建定制的ArcheType。

  1. 构建Maven项目
    你可以使用Maven命令来创建,我们这使用Eclipse来构建项目,因为后面将展示如何使用配置文件来清理一些不想要的资源。使用Eclipse(安装了Maven插件的)创建Maven Project项目:

    File->New->Other->Maven->Maven Project

    创建的项目结构如:

    默认的Junit使用的版本是3.8.1,我们想以后都使用比较新的版本如4.11(仓库查询:http://mvnrepository.com),需要修改pom.xml,把

    <dependency>
    <groupId>junit</groupId>
    <artifactId>junit</artifactId>
    <version>3.8.1</version>
    <scope>test</scope>
    </dependency>

    修改为

    <dependency>
    <groupId>junit</groupId>
    <artifactId>junit</artifactId>
    <version>4.11</version>
    <scope>test</scope>
    </dependency>
  2. 生成archetype
    在ArcheTypeDemo上右键->Run As->Maven build...

    默认的是使用maven-archetype-plugin:2.2生成的,如果你需要使用最新版本的maven-archetype-plugin请配置pom.xml,Run后在target目录下生成了一个generated-sources目录,里面就是archetype。
  3. 安装archetype到本地仓库
    如操作步骤如2,但”Base directory“需要选择generated-sources/archetype,然后在Goals里输入install,或使用Maven指令

    cd target/generated-sources/archetype& mvn install

    执行后输出:

    [INFO] --- maven-install-plugin:2.5.1:install (default-install) @ ArcheTypeDemo-archetype ---
    [INFO] Installing D:\workspace\ArcheTypeDemo\target\generated-sources\archetype\target\ArcheTypeDemo-archetype-0.0.1-SNAPSHOT.jar to D:\Java\local_repository\net\oseye\ArcheTypeDemo-archetype\0.0.1-SNAPSHOT\ArcheTypeDemo-archetype-0.0.1-SNAPSHOT.jar
    [INFO] Installing D:\workspace\ArcheTypeDemo\target\generated-sources\archetype\pom.xml to D:\Java\local_repository\net\oseye\ArcheTypeDemo-archetype\0.0.1-SNAPSHOT\ArcheTypeDemo-archetype-0.0.1-SNAPSHOT.pom
    [INFO] 
    [INFO] --- maven-archetype-plugin:2.2:update-local-catalog (default-update-local-catalog) @ ArcheTypeDemo-archetype ---

    这样就把你定制的archetype发布到本地仓库了,如果要安装到远程仓库需要使用deploy命令。

  4. 使用定制的archetype
    安装完后,如步骤1的操作步骤来创建Maven Project,在选择Archetype的时候,通过Filter:
  5. 清理工作
    如果步骤4,你不使用Eclipse,而是使用Maven指令来创建,创建的项目你会多了一些不必要的文件:

    很不干净。需要修改

    target/generated-sources/archetype/src/main/resources/META-INF/maven/archetype-metadata.xml

    来清理,删除

     <fileSet encoding="UTF-8">
    <directory>.settings</directory>
    <includes>
    <include>**/*.prefs</include>
    </includes>
    </fileSet>
    <fileSet filtered="true" encoding="UTF-8">
    <directory></directory>
    <includes>
    <include>.classpath</include>
    <include>.project</include>
    </includes>
    </fileSet>

    然后重新安装ArcheType到本地仓库即可。

定制Maven的ArcheType的更多相关文章

  1. Maven-003-私人定制 maven archetype

    在使用 Maven 创建项目模块的时候,依据其默认的 archetype 模板,创建出的目录.及默认的单元测试工具为 JUnit 3.8.1,而且有些常用的资源文件目录.配置文件(例如:Log4J 的 ...

  2. 如何使用Maven的archetype快速生成一个新项目(解决生成项目目录不完整问题)

    Maven的archetype Plugin可能大家都听过,但不一定都能很好地用好它.缺省地如果你使用 mvn archetype:generate  会从maven的Repository里查找所有支 ...

  3. 手写Maven的archetype项目脚手架

    一.背景 maven是一个很好的代码构建工具,采用“约定优先于配置”的原则进行项目管理,相信很多的java开发者应该都了解maven并可能在工作当中都是通过maven来管理项目的,在创建的项目的时候, ...

  4. 学习笔记:Maven的ArcheType的学习笔记

    摘要:     Archetype是什么?它由哪些文件组成?如何创建和安装自己的archtype,如何使用自己创建的archetype? 一.Archetype是什么     Archetype其实就 ...

  5. 定制Maven原型生成项目

    1自定义原型 1.1创建原型项目 要定制自己的原型,首先就要创建原型项目来进行定制: mvnarchetype:create -DgroupId=com.cdai.arche -DartifactId ...

  6. Maven使用archetype迅速生成项目骨架

    archetype意思是"原型",相当于项目模板.archetype是maven的一个插件,相当于模板工具包. 一个十分重要的mvn指令:mvn 插件名:目标名maven自带三个内 ...

  7. Maven 添加自定义 archetype

    环境:jdk7 maven3.23 eclipse mars 关于maven是使用插件自带的还是单独下载的,应该都是可以的,但是要注意maven和jdk版本的问题,比如3.2.3版本的maven支持j ...

  8. 使用maven创建Archetype

    Archetype原型 也就是说为项目生成一个原型,可以把这个项目发布,其他人就可以直接通过命令构建一个原型项目了. 其实我一开始也是不知道maven还有这个功能的,但是在使用的springside的 ...

  9. Maven自定义Archetype

    Maven提供了archetype帮助我们快速构建项目骨架,很便捷.但是,中央仓库中的archetype版本过于陈旧,构建好项目后,需要修改很多信息,甚是麻烦,那么如何自定义个archetype就显得 ...

随机推荐

  1. hdu-3790-最短路径问题(dijkstra算法)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3790 这题cin会超时i 关于解决cin超时的问题 在main函数开头加上 ios::sync_wit ...

  2. Struts2的一个入门实例----登录功能

    一.搭建环境与测试 1.web.xml文件,配置核心Filter 1: <?xml version="1.0" encoding="UTF-8"?> ...

  3. iostat中 %util高 应用延迟高

    经过长时间监控,发现iostat 中的%util居高不下,一直在98%上下,说明带宽占用率极高,遇到了瓶颈. 且读写速度很慢,经过排查,发现是HBA卡出现问题,更换后,用dd if命令测试,磁盘的读写 ...

  4. Flex中escape/encodeURI/encodeURIComponent的区别

    Flex中提供了三种转码函数,各有各的区别, escape,encodeURI,encodeURIComponent 这三个函数不仅在flex中有道运用在javascript中同样的含义 ,今天我仔细 ...

  5. Request中的方法调用

    几种方法的调用: package com.stono.servlet; import java.io.IOException; import java.util.Enumeration; import ...

  6. Nginx反向代理、CORS、JSONP等跨域请求解决方法总结

    由于 Javascript 同源策略的存在使得一个源中加载来自其它源中资源的行为受到了限制.即会出现跨域请求禁止. 通俗一点说就是如果存在协议.域名.端口或者子域名不同服务端,或一者为IP地址,一者为 ...

  7. ASP.NET Core MVC压缩样式、脚本及总是复制文件到输出目录

    前言 在.NET Core之前对于压缩样式文件和脚本我们可能需要借助第三方工具来进行压缩,但在ASP.NET MVC Core中则无需借助第三方工具来完成,本节我们来看看ASP.NET Core MV ...

  8. win10环境下python3.5安装步骤

    点我去Python官网下载 往下翻几页就能看到各种版本的Python,当前最新的是Python3.6,也没多大区别,我选择的是3.5.2 64位的,点击download 根据自己的电脑配置,我选择的是 ...

  9. ubuntu linux 中安装 mysql

    三种安装方式: 1. 从网上安装 sudo apt-get install mysql-server.装完已经自动配置好环境变量,可以直接使用mysql的命令. 注:建议将/etc/apt/sourc ...

  10. CentOS7 ssh无密码登录

    准备工作:给各个主机取个名字,如master(主节点),slave01(从节点01),slave02(从节点02) 1.修改主机名: hostname master hostname slave01 ...