博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Maven实战. 3.5使用Archetype生成项目骨架
阅读量:6221 次
发布时间:2019-06-21

本文共 2080 字,大约阅读时间需要 6 分钟。

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,简单地运行:mvn archetype:generate如果是Maven 2,最好运行如下命令: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。如下输入并确认:Define value for groupId: : com.juvenxu.mvnbook

Define value for artifactId: : helloworld

Define value for version:  1.0SNAPSHOT: :

Define value for package:  com.juvenxu.mvnbook: : com.juvenxu.mvnbook.helloworld

Confirm properties configuration:

groupId: com.juvenxu.mvnbook

artifactId: helloworld

version: 1.0SNAPSHOT

package: com.juvenxu.mvnbook.helloworld

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。

转载地址:http://fkmja.baihongyu.com/

你可能感兴趣的文章
Java多线程中run(), start(), join(), wait(), yield(), sleep()的使用
查看>>
JAVA wait(), notify(),sleep详解
查看>>
LCD显示——点阵字体
查看>>
Yarn应用程序编程实例
查看>>
fortune 计算公式
查看>>
C语言内存分析
查看>>
[复变函数]第18堂课 5. 2 解析函数的孤立奇点
查看>>
获取输入法输入内容及后选项的钩子
查看>>
泛型类及方法的基本使用
查看>>
修改eclipse的自动完成功能
查看>>
u3d调用c++ dll的DllNotFoundExceion 问题
查看>>
2D Tookit (一) 精灵切割
查看>>
个人或小型企业站该如何选择服务器?
查看>>
微信中QQ表情的解析(php)
查看>>
spring(6)--注解式控制器
查看>>
FireMonkey 源码学习(2)
查看>>
Visual Studio 2013 (vs2013)中“向前定位”,“向后定位”按钮
查看>>
属性选择器
查看>>
QEMU KVM libvirt 手册(3) - Storage Media
查看>>
数学图形(1.18)Poinsot's spiral螺线
查看>>