zoukankan      html  css  js  c++  java
  • maven archetype生成自定义项目原型(模板)

    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与依赖中的某些字符串相同,那么生成新项目的时候会将这些依赖的名字也给替换掉.所以为了少麻烦,用一些不容易重复的名字比较好.

  • 相关阅读:
    css选择器的分类及优先级计算方法总结
    第四周实验总结&实验报告
    2019春季总结
    第七周课程总结&实验报告五
    第六周学习总结&java实验报告四
    第二周Java学习总结
    第九周课程总结&实验报告(七)
    第五周学习总结&实验报告三
    第三周课程总结及实验报告
    第八周课程总结&实验报告(六)
  • 原文地址:https://www.cnblogs.com/chyu/p/5648139.html
Copyright © 2011-2022 走看看