qileilove

blog已经转移至github,大家请访问 http://qaseven.github.io/

使用Archetype生成项目骨架

3.5 使用Archetype生成项目骨架

Hello World项目中有一些Maven的约定:在项目的根目录中放置pom.xml,在src/main/java目录中放置项目的主代码,在src/test/java中放置项目的测试代码。之所以一步一步地展示这些步骤,是为了能让可能是Maven初学者的你得到最实际的感受。我们称这些基本的目录结构和pom.xml文件内容称为项目的骨架,当第一次创建项目骨架的时候,你还会饶有兴趣地去体会这些默认约定背后的思想,第二次,第三次,你也许还会满意自己的熟练程度,但第四、第五次做同样的事情,你可能就会恼火了。为此Maven提供了Archetype以帮助我们快速勾勒出项目骨架。

还是以Hello World为例,我们使用maven archetype来创建该项目的骨架,离开当前的Maven项目目录。

如果是Maven 3,简单地运行:

  1. mvn archetype:generate 

如果是Maven 2,最好运行如下命令:

  1. mvn org.apache.maven.plugins:mavenarchetype
    plugin:2.0alpha5:generate  

很多资料会让你直接使用更为简单的 mvn archetype:generate 命令,但在Maven 2中这是不安全的,因为该命令没有指定Archetype插件的版本,于是Maven会自动去下载最新的版本,进而可能得到不稳定的SNAPSHOT版本,导致运行失败。然而在Maven 3中,即使用户没有指定版本,Maven也只会解析最新的稳定版本,因此这是安全的。具体内容见7.7节。

我们实际上是在运行插件mavenarchetypeplugin,注意冒号的分隔,其格式为 groupId:artifactId:version:goal,org.apache.maven.plugins 是maven官方插件的groupId,mavenarchetypeplugin 是Archetype插件的artifactId,2.0alpha5 是目前该插件最新的稳定版,generate是要使用的插件目标。

紧接着会看到一段长长的输出,有很多可用的Archetype供选择,包括著名的Appfuse项目的Archetype、JPA项目的Archetype等。每一个Archetype前面都会对应有一个编号,同时命令行会提示一个默认的编号,其对应的Archetype为mavenarchetypequickstart,直接回车以选择该Archetype,紧接着Maven会提示输入要创建项目的groupId、artifactId、version以及包名package。如下输入并确认:

  1. Define value for groupId: : com.juvenxu.mvnbook  
  2. Define value for artifactId: : helloworld  
  3. Define value for version:  1.0SNAPSHOT: :  
  4. Define value for package:  com.juvenxu.mvnbook: : 
    com.juvenxu.mvnbook.helloworld  
  5. Confirm properties configuration:  
  6. groupId: com.juvenxu.mvnbook  
  7. artifactId: helloworld  
  8. version: 1.0SNAPSHOT  
  9. package: com.juvenxu.mvnbook.helloworld 
  10. Y: : YArchetype

插件将根据我们提供的信息创建项目骨架。在当前目录下,Archetype插件会创建一个名为helloworld(我们定义的artifactId)的子目录,从中可以看到项目的基本结构:基本的pom.xml已经被创建,里面包含了必要的信息以及一个junit依赖;主代码目录src/main/java已经被创建,在该目录下还有一个Java类com.juvenxu.mvnbook.helloworld.App,注意这里使用到了刚才定义的包名,而这个类也仅仅只有一个简单的输出Hello World!的main方法;测试代码目录src/test/java也被创建好了,并且包含了一个测试用例com.juvenxu.mvnbook.helloworld.AppTest。

Archetype可以帮助我们迅速地构建起项目的骨架,在前面的例子中,我们完全可以在Archetype生成的骨架的基础上开发Hello World项目以节省大量时间。

此外,这里仅仅是看到了一个最简单的Archetype,如果有很多项目拥有类似的自定义项目结构以及配置文件,则完全可以一劳永逸地开发自己的Archetype,然后在这些项目中使用自定义的Archetype来快速生成项目骨架。本书后面的章节会详细阐述如何开发Maven Archetype。

Maven2创建Java项目

1、打开命令行窗口,显示在保存项目的位置;

2、创建JAVA项目

     命令:mvn archetype:generate

* 输入需要创建的项目,这里创建普通java项目,按照选择输入15,默认就可以了; 
Define value for groupId :输入组织ID; 
Define value for groupId :输入项目名称; 
Define value for version :输入版本号,可以直接回车,默认是1.0-SNAPSHOT; 
Define value for package :java的包名,如com.shichao; 
完成以上输入后,命令行显示以上信息,输入y 即完成创建.

3、将maven项目转化为eclipse项目

      mvn eclipse:eclipse

      maven将生成eclipse需要的配置文件,形成eclipse项目(如.project文件); 
      打开eclipse,菜单选择:file>import>general>existing projects into workspace,在对话框中选中目录,导入即可;

4、清除eclipse项目相关配置

     mvn eclipse:clean

     maven将清除项目中eclipse配置文件

 

Maven2创建WEB项目

      在maven的工作空间(这里的工作空间即将要存放所创建的Web项目文件夹的文件夹。如E:\maven)中执行如下的命令:

      mvn archetype:create -DgroupId=com.javaeye.webfoo -DartifactId=webfoo -DarchetypeArtifactId=maven-archetype-webapp

      再将项目导入eclipse即可!

posted on 2014-03-12 11:35 顺其自然EVO 阅读(5103) 评论(0)  编辑  收藏 所属分类: 持续集成maven


只有注册用户登录后才能发表评论。


网站导航:
 
<2024年3月>
252627282912
3456789
10111213141516
17181920212223
24252627282930
31123456

导航

统计

常用链接

留言簿(55)

随笔分类

随笔档案

文章分类

文章档案

搜索

最新评论

阅读排行榜

评论排行榜