快速搭建Maven环境并创建web项目

Maven是一个项目管理工具,它能够很方便的帮你管理项目报告,生成站点,管理JAR文件,等等。

准备

登录Maven官网下载Maven。
我安装的Maven版本是apache-maven-3.3.9。
值得注意的是,Maven需要在java环境运行,因此你的电脑应该装有jdk。

配置Maven环境

将下载文件解压,然后设置maven环境。
如果你配置过jdk的话,这里对你应该不难。如我的maven环境为:D:\apache-maven-3.3.9
我的电脑—-属性—-高级—-环境变量—-系统环境变量—-新建
变量名:maven_HOME
变量值:D:\apache-maven-3.3.9
找到path
在环境变量值尾部加入:;%maven_HOME%\bin;—前面注意分号
打开命令提示符(开始—运行—cmd),检查我们的java环境和maven环境是否有误。

1
$ mvn -v

修改仓库位置

maven里面有一个repository的概念,仓库用于存放我们项目所依赖的所有jar包,当我们的项目依赖于某个jar时,maven会去repository里面去找。repository分两种,一种是远程的,一种是本地的。如果有几个project都用到junit,我们可以把junit放在repository里面,几个project可以公用,节约存储空间而且方便管理,这个repository的位置可以在pom.xml里面设置。
本地的默认的路径是安装用户的目录下的 .m2\repository文件夹,下面来修改我们的仓库地址。
我的仓库路径:D:_MavenRepository—-这个路径是我自己创建,你可以将路径创建在任何位置。
我们打开…\apache-maven-3.3.9\conf\目录下的setting.xml文件,找到localRepository标签,此时是被注释掉的,我们解除注释,然后配置一个路径设置成我们创建的仓库路径。

打开命令提示符,初始化Maven仓库。

1
$ mvn help:system

如果运行的过程中没有错误,打开我们仓库(D:_MavenRepository)会发现里面多了一些文件。这些文件就是我们从maven的中央仓库下载到本地仓库的。

上面的这个命令会打印出所有的java系统属性和环境变量。这些信息对我们日常的编程工作很有帮助。

创建一个Maven项目

用命令行创建Maven项目

创建一个存放Maven项目的文件夹,我这里是在D盘创建的,命名为_MavenPrj。
切换到Maven目录下(注意:跳过这步操作会将项目建立在默认的C/Users/CurrentUser/ 目录下,就很尴尬了。)

1
$ cd _MavenPrj

通过命令行方式创建一个普通项目:

1
$ mvn archetype:generate -DgroupId=com.lee.test -DartifactId=testMaven -DpackageName=com.lee.test -Dversion=1.0

1)archetype:generate, 这是一个maven的plugin,用来从一个archetype创建一个project。
2)-DgroupId和-DartifactId用来放在pom.xml文件里面,作为当前创建的project的描述信息。

因为是第一次构建项目,所有依赖的jar包都要从maven的中央仓库下载,所以需要时间等待。等以后我们的本地仓库中积累了我们常用的jar包后,我们的开发将变得非常规范和方便。
中间如果有输入提示信息,直接回车使用默认值就可以了。



这条命令执行完后,会在你的当前目录下生成一个名为testMaven的目录:

创建项目时卡顿的解决办法

如果你在执行命令行时卡在Generating project in Interactive mode这一步,是因为maven在从远程拉取信息,使用 -DarchetypeCatalog=internal 参数让它不要从远程服务器上取catalog。添加这句话之后,就不会卡死了。就会进入交互阶段,一步步询问。每一步如果有默认选项直接按enter即可。

1
$ mvn archetype:generate -DarchetypeCatalog=internal

按照交互提示依次输入groupId、artifactId、version、package如下图。

也可以使用下面的命令跳过填写groupId、artifactId、version、package阶段,直接生成项目。

1
mvn archetype:generate -DgroupId=com.lee.test -DartifactId=Demo -Dpackage=com.lee.test -Dversion=1.0-SNAPSHOT -DarchetypeCatalog=internal

了解pom.xml文件

另外maven还生成了一个重要的文件pom.xml,maven就是通过这个文件来来管理整个project,可以理解位类似于eclipse的.project文件。默认生成的pom.xml文件的内容如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.lee.test</groupId>
<artifactId>testMaven</artifactId>
<version>1.0</version>
<packaging>jar</packaging>
<name>testMaven</name>
<url>http://maven.apache.org</url>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
</dependencies>
</project>

Ø project:pom.xml文件中的顶层元素;
Ø modelVersion:指明POM使用的对象模型的版本。这个值很少改动。
Ø groupId:指明创建项目的组织或者小组的唯一标识。GroupId是项目的关键标识,典型的,此标识以组织的完全限定名来定义。比如,org.apache.maven.plugins是所有Maven插件项目指定的groupId。
Ø artifactId:指明此项目产生的主要产品的基本名称。项目的主要产品通常为一个JAR文件。第二,像源代码包通常使用artifactId作为最后名称的一部分。典型的产品名称使用这个格式: - . (比如:myapp-1.0.jar)。
Ø version:项目产品的版本号。Maven帮助你管理版本,可以经常看到SNAPSHOT这个版本,表明项目处于开发阶段。
Ø packaging:这个project的打包的类型,一般是war、jar等值。
Ø name:项目的显示名称,通常用于maven产生的文档中。
Ø url:指定项目站点,通常用于maven产生的文档中。
Ø description:描述此项目,通常用于maven产生的文档中。

对于一个项目中只有下面的一部分是是我们需要关注的:

1
2
3
4
5
<groupId>com.lee.test</groupId>
<artifactId>testMaven</artifactId>
<version>1.0</version>

编译项目代码

我们的项目已经创建完成。但我们点开目录发现,它并不是我们eclipse所需要的项目目录格式。我们需要把它构建成我们eclipse可以导入的项目。

在命令提示符下切换到我们的创建的项目目录(D:_MavenPrj\testMaven)下,执行

1
$ mvn clean compile

Clean 告诉maven清理输出目录target/,compile告诉maven编译项目主代码。

编译完后maven会创建一个target目录去保存编译结果。 我们需要编译成一个什么样的内容,以及要输出到什么地方等等,都是可以在pom.xml文件里面配置的,但是因为我们目前并没有指定这些内容,所以maven会使用默认值。
不要急,我们又需要一段时间来下载相关jar包。第一次用maven要学会淡定。

项目是编译完了,但项目的目录结构还不是我们想要的eclipse的项目结构,是不能导入到eclipse中的。所以,还需要执行一个命令:

1
mvn eclipse:eclipse

命令执行完成后就得到我们需要的项目目录了。

用Eclipse创建Maven项目

第一次使用要先配置Eclipse中的Maven仓库位置。

打开我们的eclipse。
查看eclipse指向的maven仓库路径:Window-> Perferences-> java-> Build Path-> Classpath Variables,观察M2_REPO的值,如果不是你自定义的本地仓库的路径,那么需要对其进行配置。

配置方法:Window-> Perferences-> Maven-> installations-> 然后点击Add,添加自己安装的maven,找到自己安装的maven文件的根目录,并点击Apply -> OK。

下面来用Eclipse创建一个Maven的webapp项目。

开启Eclipse,右键new -> other,如下图找到Maven Project。

选择Maven Project,显示创建maven项目的窗口,勾选如下图所示,Create a simple project。

输入Maven项目的基本信息,如下图所示。

完成maven项目的创建,生成相应的maven项目结构,如下图。

这时还要对项目属性进行一些设置。
选择项目,右键选择Properties,进入属性页面,点击Project Facets,如下图。

因为我的jdk版本是1.7,所以我选择java版本为1.7。
点击 Dynamic Web Module 前的复选框,将它去掉,点击Apply

选择Dynamic Web Module 的版本为3.0(跟jdk1.7对应)。
在这个页面再次勾选 Dynamic Web Module 前的复选框,会看到最下面出现了 Further configuration available… 的超链接。

点击 Further configuration available…,如下图。

配置src/main/webapp,并勾选生成web.xml的选项,如下图。

点击OK,如下所示,webapp目录结构显示出来了:

此时还需要检查src/main/webapp为“/”项目的根目录,如果不是,需要配置,如下图。

在webapp文件夹下新建一个jsp页面,index.jsp。写一句话 hello world!

Run As -> Run on Server,运行服务器。

大功告成!

总结

Maven搭建的过程,总的来说并不难,一步一步下来即可。我相信一定有人有比我更好更方便的搭建方式,本文仅抛砖引玉,欢迎交流学习。

参考文献
Maven学习总结:基本概念
maven环境快速搭建
Maven使用archetype迅速生成项目骨架
eclipse创建maven web项目时,index.jsp报错
Eclipse+Maven创建webapp项目<一>
项目管理利器——maven

版权声明:本文为博主原创文章,转载请注明出处 Leezp’s Blog

点击按钮打赏作者!