• (转)遇到重复的Maven项目初始配置,就要创建自己的Maven Archetype


    来自:http://gavin-chen.iteye.com/blog/336585

    什么是重复的Maven项目初始配置?举个例来说,比如你公司要采用Maven + GWT的搭配,那些对于很多同事,尤其是新同事来说,搭配这样的平台是相当痛苦的事情,每当有不熟悉配置的人进入到项目组,都要消耗一个人很多时间去搭配!这时你可能会说,我搭配好,把整个项目备份,下次要用时,就拿出来用不就行了!在这里我要提醒你,你这样保存的目录是死的,就是说你里面那些文件夹,如/src/main/java/com/mycompany/,这里/com/mycompany就是死的,当项目groupId从com.mycompany改为org.apache时,你拷过来的东西,还得花比较多的时间去改。并且如果项目组有很多人,每个人都得先从一个地方拷贝,比较麻烦,从某种意义上来说,创建一个这个项目初始配置的archetype会节省你,尤其是项目组的时间,如果有自己的maven repository服务器,那效果就更佳了。

    在这里我并不打算解释maven archetype是什么东西,大家有兴趣,可以参考官方文档,它有详尽的解释,与实例,这里我也只是简单列举一下用法,也并不打算写一篇官方文档的翻译版,纯粹是介绍之意

    官方文档:http://maven.apache.org/guides/mini/guide-creating-archetypes.html

    下面是创建自己的archetype的步骤,及用法

    1、首先创建一个maven archetype的项目,用下面的命令

    Java代码 复制代码 收藏代码

    1. mvn archetype:create
    2. -DgroupId=[your project's group id]
    3. -DartifactId=[your project's artifact id]
    4. -DarchetypeArtifactId=maven-archetype-archetype
    mvn archetype:create 
      -DgroupId=[your project's group id]
      -DartifactId=[your project's artifact id]
      -DarchetypeArtifactId=maven-archetype-archetype

    在上面的命令中 -D 是参数, groupId 与 archetypeId的意义也不解释了,maven项目的话,groupId, archetypeId, version这三个是必须得了解的,即使你用别人的dependency,这三个参数也是必须明确的,这里再次提醒一下,maven的官方网站是:http://maven.apache.org

    首先在命令行窗口中,进到你想要存放这个项目的目录,如c:\test,又比如你公司的网站有http://www.mycompany.com,那么通常你的groupId就是"com.mycompany",新创建的archetype项目想命名为my-archetype,那么,就该打以下命令

    c:\test > mvn archetype:create -DgroupId=com.mycompany -DartifactId=my-archetype -DarchetypeArtifactId=maven-archetype-archetype

    运行完命令后c:\test目录下会生成下面这样一个目录结构

    my-archetype

    |--pom.xml //这个是archetype项目的pom文件,下面还有一个pom文件,两个是不同的

    |--src

    |--main

    |--resources

    |--archetype-resources //这个文件夹里面的文件全是要被复制的文件

    |--pom.xml //要被复制的pom.xml文件

    |--src

    |--main

    |--java //实际上,在创建新项目后,会自己帮你创建与groupId相对应的文件夹,然后把源代码文件复制相这些文件夹下面

    |--App.java //要被复制的java代码文件

    |--test

    |--java

    |--TestApp.java //要被复制的单元测试代码文件

    |--META-INF

    |--maven

    |--archetype.xml //在这个xml文件中,要明确写明所有要被复制的文件的相对路径

    然后运行下面这个命令,将自己的archetype install 到本地的maven repository目录中

    c:\test > mvn install

    就这样,你自己的maven archetype就己经成功被安装了,怎么使用它,下面再作简单介绍

    比如有一个新同事,要用你的archetype生成一新项目的初始配置目录,groupId与你之前所写的有所不同,为com.company.customer,artifactId为news-module,那么,他需要运行下面这个命令

    c:\test > mvn archetype:create -DarchetypeGoupId=com.mycompany -DarchetypeArtifactId=my-archetype -DarchetypeVersion=1.0-SNAPSHOT -DgroupId=com.mycompany.customer -DartifactId=news-module

    不要怕命令长度太长,其实理解了它们的意思,就容易了,无非就是archetype、groupId、artifactId、version这几个单词的组合

    在上面的命令中,-DarchetypeVersion=1.0-SNAPSHOT,这个1.0-SNAPSHOT是怎么来的呢,其实新创建的archetype项目version都是1.0-SNAPSHOT(你可以在c:\test\first-maven-archetype\pom.xml文件中找到,当然,如果你想换,你自己可以改一个你喜欢的)

    运行完以上命令后,在你c:\test文件夹下,会生成下面这样一个目录

    news-module

    |--pom.xml //这个pom是复制过来的

    |--src

    |--main

    |--java

    |--com

    |--mycompany //com,mycompany,customer这三个文件夹是根据groupId自动创建的

    |--customer

    |--App.java //这个文件是复制过来的

    |--test

    |--java

    |--com

    |--mycompany //com,mycompany,customer这三个文件夹是根据groupId自动创建的

    |--customer

    |--TestApp.java //这个文件是复制过来的

  • 相关阅读:
    Django之form组件
    Http协议
    用户认证系统 django.contrib.auth模块
    自己关于Django的一些实践
    form标签
    jquery 遍历find()与children()的区别
    存储过程
    ASP.NET优化
    TRUNCATE与 DELETE
    视图的作用
  • 原文地址:https://www.cnblogs.com/luhouxiang/p/2164053.html
Copyright © 2020-2023  润新知