`
Gavin.Chen
  • 浏览: 325782 次
  • 性别: Icon_minigender_1
  • 来自: 广州
文章分类
社区版块
存档分类
最新评论

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

阅读更多

      什么是重复的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的项目,用下面的命令

 

 

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        //这个文件是复制过来的

 

 

分享到:
评论
2 楼 Gavin.Chen 2009-03-11  
且如果项目组有很多人,每个人都得先从一个地方拷贝,比较麻烦,从某种意义上来说,创建一个这个项目初始配置的archetype会节省你,尤其是项目组的时间,如果有自己的maven repository服务器,
airport 写道

一个疑问,刚使用Maven,按照你写的是不是本地Server得先安装一个Maven repository。另外新人在哪里配置server地址,否则他怎么能找到以前的archetypeGoupId


用maven, 本机会有一个本地的repository库,这只是你本地的,别人用不了。公司的话,少不了一台服务器作为maven repository的服务器,装一些repository管理的软件,如nexus,然后作为公司共享的repository库,如果是自己写的maven plugin, 或者archetype, 就要通过repository管理软件上传到repository服务器中,然后全公司的人以后都可以用了
1 楼 airport 2009-03-09  
一个疑问,刚使用Maven,按照你写的是不是本地Server得先安装一个Maven repository。另外新人在哪里配置server地址,否则他怎么能找到以前的archetypeGoupId

相关推荐

    maven_archetype

    Maven Archetype 并非一个简单的模板,而是一种可重复使用的构建模块,能够根据预定义的配置生成一个新的 Maven 项目。这种机制极大地简化了新项目的初始化过程,尤其是对于遵循特定规范或框架的项目。 ### Maven ...

    maven_archetype-catalog.zip

    然而,当我们使用Eclipse这样的集成开发环境(IDE)时,有时会遇到创建Maven Web项目时出现错误,这可能是由于Maven配置不当或网络问题导致的。为了解决这些问题,我们可以利用"Maven Archetype Catalog",这是一个...

    maven-archetype-webapp-1.0.jar下载

    总的来说,Maven Archetype Webapp 1.0.jar是Java Web开发者的重要工具,它简化了项目初始化过程,使得开发者可以更加专注于业务逻辑的实现,而非重复的项目搭建工作。通过理解和有效利用这一工具,开发者可以更高效...

    【maven】多子模块maven模板工程archetype创建过程

    【maven】多子模块maven模板工程archetype创建过程 在软件开发中,Maven作为Java项目管理和构建工具,提供了强大的依赖管理功能。而Maven的Archetype插件则可以帮助开发者快速创建新项目的模板,尤其对于有多个子...

    maven archetype

    除了使用现有的 Archetype,开发者还可以创建自己的 Archetype,以便分享或重复使用特定的项目结构。自定义 Archetype 包括构建 Archetype 项目、打包并发布到 Maven 仓库等步骤。 ### Maven Archetype 的扩展性 ...

    Maven 项目模板archetype-catalog.xml

    每个Archetype都包含一组文件和目录结构,当用户使用该模板时,Maven会根据模板生成一个新的项目,填充默认的POM配置和必要的初始化文件。 2. archetype-catalog.xml结构 `archetype-catalog.xml`文件通常包含三个...

    新建maven项目失败需要的jar包,maven-archetype-quickstart-1.1.jar

    当你尝试使用Maven创建项目但遇到失败时,可能是因为缺少了对应的Archetype或者网络问题导致无法下载。此时,你可以手动提供本地的`maven-archetype-quickstart-1.1.jar`来解决问题。 以下是使用本地`maven-...

    eclipse 创建maven项目 选择 archetypes所用到的jar包

    如果你发现现有的Archetypes不能满足需求,或者想要创建自己的项目模板,可以通过编写Archetype配置文件(archetype-descriptor.xml)和模板代码来实现。自定义的Archetypes可以发布到私有或公共的Maven仓库,供团队...

    一个SSM框架的maven archetype

    5. 使用SSM archetype创建项目: 要使用这个SSM archetype,首先需要在命令行或IDE中运行maven的archetype插件,输入相应的groupId、artifactId和version信息。完成后,会生成一个包含SSM框架配置文件、基本目录...

    maven-archetype-quickstart-1.1.jar.zip

    在Linux(特别是Ubuntu)环境中,有时Eclipse可能无法直接创建Maven项目,这时我们可以借助`maven-archetype-quickstart-1.1.jar`来手动完成项目初始化。 **一、Maven Archetype Quickstart的用途** Maven ...

    maven基础学习(四)-简单实例(使用Archetype生成项目骨架)

    6. 生成项目:Maven会根据所选Archetype创建一个新的项目目录,包含初始的pom.xml和其他必要的文件。 四、自定义Archetype 如果预定义的Archetypes不能满足需求,可以通过以下步骤创建自己的Archetype: 1. 创建...

    一个SSH框架的maven archetype

    使用SSH框架的maven archetype创建项目,开发者需要先安装Maven,然后使用Maven的archetype插件生成项目结构。命令行中输入指定的 archetype:generate 命令,填写相关的groupId、artifactId和version等信息,就可以...

    maven配置proxy和archetype

    【标题】"maven配置proxy和archetype"涉及的是在使用Maven构建Java项目时,如何设置代理服务器(proxy)和创建项目模板(archetype)的相关知识。在开发环境中,尤其是公司网络通常需要通过代理服务器访问外部资源,...

    maven-archetype-quickstart-1.1.zip

    总的来说,"maven-archetype-quickstart-1.1.zip"是Maven初学者的重要工具,它简化了项目创建流程,帮助开发者快速上手Maven,同时也为那些遇到创建问题的用户提供了一种解决方案。理解并掌握如何使用这个archetype...

    maven-archetype-webapp-1.0.jar

    总结起来,`maven-archetype-webapp-1.0.jar`是Maven提供的一个用于创建Web应用的模板,它简化了项目初始化的过程,让开发者可以更专注于编写业务逻辑,而不是花费时间在配置基础结构上。理解和熟练使用Maven ...

    maven-archetype-3.1.2-source-release.zip

    1. Maven Archetype机制:Maven Archetype是一种快速创建新项目的方式,它定义了一种项目结构和初始配置。maven-archetype-3.1.2-source-release是一个特定版本的Archetype,用于生成源码发布版本的项目模板。 2. ...

    maven archetype-catalog.xml 下载

    "骨架"(Archetype)是Maven提供的一种机制,允许开发者创建项目模板,这些模板可以用来快速初始化新的Maven项目,包括基本的目录结构、文件内容以及初始的POM配置。这大大减少了从零开始创建新项目的繁琐工作。`...

    Maven项目创建流程

    以下是一个详细的Maven项目创建步骤,包括创建父项目、子模块以及设置相关的配置信息。 1. **新建Maven项目** 首先,打开IDE(如Eclipse或IntelliJ IDEA),在项目资源管理器中右键单击,选择"New" -> "Other"。在...

    java maven archetype-catalog.xml

    在开发过程中,我们常常使用Maven的骨架(Archetype)功能来快速生成一个新的项目结构,这有助于遵循最佳实践并减少手动配置的工作。 标题提及的“java maven archetype-catalog.xml”是与Maven骨架相关的文件。这...

Global site tag (gtag.js) - Google Analytics