定制Maven的ArcheType

根据需要定制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:workspaceArcheTypeDemo argetgenerated-sourcesarchetype argetArcheTypeDemo-archetype-0.0.1-SNAPSHOT.jar to D:Javalocal_repository etoseyeArcheTypeDemo-archetype.0.1-SNAPSHOTArcheTypeDemo-archetype-0.0.1-SNAPSHOT.jar
    [INFO] Installing D:workspaceArcheTypeDemo argetgenerated-sourcesarchetypepom.xml to D:Javalocal_repository etoseyeArcheTypeDemo-archetype.0.1-SNAPSHOTArcheTypeDemo-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到本地仓库即可。
出处:http://www.zhaiqianfeng.com    
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
原文地址:https://www.cnblogs.com/zhaiqianfeng/p/4620153.html