首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

maven实战之旅第四篇——利用maven archetype手动建立一个maven项目

maven实战之旅第四篇——利用maven archetype手动建立一个maven项目

在前面我们说过,只要在maven项目中的pom.xml文件中配置我们项目需要依赖的jar包信息,maven就会根据我们配置的坐标在maven的中央仓库自动帮我们下载相关的jar包,那么这些jar包下载好后放在我们本地机器什么地方了?我们来看看maven安装目录下的conf文件夹下的settings.xml文件。在这个文件中有这么一行代码:

<!-- localRepository
   | The path to the local repository maven will use to store artifacts.
   |
   | Default: ${user.home}/.m2/repository
  <localRepository>/path/to/local/repo</localRepository>
  -->

很明显这行代码被注释掉了,这是一行配置我们本地工厂的代码,这个本地工厂也就是我们刚刚说的maven下载下来的jar包放置的位置。从中间的那段注解中我们直到,如果我们不自己手动配置我们的本地工厂目录,maven会默认在将本地工厂设置在${user.home}/.m2/repository这个目录下面,也就是C盘下我的文档的.m2的repository文件夹下。我们的maven在检测到pom.xml文件夹下面的依赖坐标时,会首先查看我们的本地工厂下有没有我们依赖的jar包,如果有的话就直接供项目使用,如果没有的话就会在中央仓库下载我们依赖的jar包到本地仓库提供给我们项目使用。所有说这个本地工厂会存放大量我们各种各样的项目依赖的jar包,如果我们将它设置在c盘,首先由于随着时间的推移文件会慢慢增多,变得越来越大,影响系统速度,其次,如果万一我们更换系统的话这些文件都会消失,所以我们通常都会手动配置我们的本地仓库位置。这里我就将它配置在D:\ProgramData\maven\repo目录下。

<localRepository>D:\ProgramData\maven\repo</localRepository>

讲完上面的配置文件之后我们来手动建立一个maven项目。Maven项目通常都有一个固定的文件夹结构,这些固定的文件夹结构我们把它称为骨架archetype,为了方便我们创建maven项目,maven给我们提供了不同版本的骨架。下面我们就用maven给我们提供的骨架archetype来创建一个maven项目。

首先建立一个文件夹,我再E盘下面建了一个maven project文件夹,然后在cmd下进入该文件夹目录下,输入maven archetype:generate

回车,这个时候maven就会自动下载使用archetype所依赖的一些jar包

下载完成之后可以打开我们之前手动设置的本地仓库目录下查看,发现这些jar包都被下载到我们的本地仓库了。然后程序会提示我们选择我们的archetype的版本号,alpha为内部测试版,我们直接选择最高版本的就可以了,在choose a number后面输入一个6就可以了。接着回车:

选择完archetype版本号后,程序会提示我们输入groupId,artifactid,version,和package的名称。

我们之前说过,maven在查找我们项目所需要依赖的jar包的时候是通过pom.xml文件里面提供的jar包的坐标到仓库中查找的,那么这个坐标是怎么实现的呢,这个地方的groupId,artifactId,和version组合起来就是坐标,通常maven就是通过groupId和artifactId来查找我们的jar包的(version有时候在pom.xml文件中可以不用填写,但是groupId和artifactId必须要在pom.xml文件中说明)。

groupId是一个项目组的名称,它的命名是有规范的。一般分为多个段,这里我只说两段,第一段为域,第二段为公司名称。域又分为org、com、cn等等许多,其中org为非营利组织,com为商业组织。参与商业开发的话你就按照商业的要求来命名即可,我们这里只是教大家怎么用maven,那就暂且随便取名为com.myfirst.maven。

接下来在输入artifactId,一个项目组下面(groupId)可能会有多个模块,每一个模块的命名就是artifactId,我们这里给artifactId命名为maven01。这个maven01就是我们到时候生成的maven项目名称。它是属于我们项目组的一个模块,一个项目中可能有多个模块,maven01,maven02,maven03等等。

最后就是选择我们的版本version,这个版本的管理也有一定的规范,通常命名形式为x.x.x-里程碑,这个里程碑有SNAPSHOT(快照版本,也就是正在开发的不稳地的版本),alpha(内部测试版),beta(由使用人员下载下来我们用),release(当使用人员发现项目没问题,可以发不了,就变成了release版本,也就是发布版本),GA(最后就是稳定可靠的版本了)。这里我们就写成0.0.1-SNAPSHOT。

最后就是package,这个就是我们java项目里面的package,当我们通过archetype方式生产maven项目之后,maven就会按照package的命名在项目内部建立一个package,这里我们就命名为com.myfirst.maven(这与groupId无关,名字随便取)。然后回车:

程序会提示你是否要创建该项目,我们输入Y即可,当出现build success时,说明项目构建完成,我们可以在E盘的maven project这个文件夹项目看到maven01这个项目。

但是通常情况下,我们不会这样一步一步的来构建一个maven项目,而是直接一次性填写好内容直接回车。如图所示我们在maven project文件夹下面输入指令

mvn archetype:generate -DgroupId=com.myfirst.maven -DartifactId=maven01 -Dversion=0.0.1-SNAPSHOT

回车即可:

当然,车许依然会提示输入我们使用的archetype版本,以及是否要创建该项目,我们分别输入最高版本对应的序号,和Y即可。回车之后在我们的maven project同样可以看到maven01这个项目。

至此我们通过maven的archetype方式构建了一个简单的maven项目。

举报
领券