maven的初步学习
近期对maven这一项目管理工具进行了初步的学习,在搜索资料的同时保存下来,以免后续学习时再次花费精力去查找。
maven是什么
正如前文所说,maven是一个项目管理工具,我目前接触到的功能主要是进行一些jar
包的导入。如在开发某个Java Web
项目时,需要导入大量的依赖(jar
包),在没有接触maven
之前是通过网络查找相应的jar
包,并手动导入到项目的lib
目录下。这样做看似没有问题,但真正在查找资源的时候,通常很难找到需要的jar
包。
通过使用maven
,可以简化这一过程,同时降低查找jar
包等资源的难度。这也是使用maven
带来的好处之一。
maven下载与安装
maven
工具可以从官网下载,地址如下:maven官网下载地址
有关maven
的配置,可以参考这两篇博文:maven环境配置博文一,maven环境配置博文二
需要说明的是,从核心仓库中下载jar
等比较慢,可以依照上面的博文在配置文件中配置阿里云的镜像。
若是在集成开发环境Eclipse
中使用maven
,可以依照自己的版本选择相应的maven
,一般是现在所下载的Eclipse
中均继承maven
插件,这样可以不必导入自己安装的maven
。有关在Eclipse
中导入maven
插件的方法,可以参照上面的两篇博文。
maven的使用
maven项目目录结构
创建maven
工程后,通常会形成特特定的目录结构,如下所示:
常用命令
maven
有几个常用命令,通过这些命令,可以完成项目的编译,运行,打包等功能。
-
编译命令
compile
作用是将src/main/java
下的文件编译为class
文件输出到target
目录下。 -
测试命令
test
执行src/test/java
下的单元测试类。 -
清理命令
clean
执行clean
会删除target
目录的内容。 -
打包命令
package
对于java
工程执行package
打成jar
包, 对于web
工程打成war
包。 -
安装命令
install
执行install
将maven
打成jar
包或war
包发布到本地仓库。
以上命令可以在Windows
系统的cmd
窗口中运行,但需要在前面加上mvn
命令,注意在其与各项命令间有空格。
在使用Tomcat7
服务器时,可以在pom.xml
中加入Tomcat
插件,这样便可以直接在Eclipse
中通过右键项目名称并选择maven
方式运行即可将项目发布到服务器中,但目前自己使用的是Tomcat9
,故没有尝试这么做。有关内容,可以参考如下博文:启动Tomcat的插件。
pom文件的配置
使用maven
构建项目,免去了手动导入jar
包的烦恼,但若想使用这些依赖包,仍然需要在项目的pom.xml
文件中配置这些jar
包的坐标。
坐标这一词不难理解,就是确定某个物品的方位的参考值,在我们的maven
仓库中使用这一词,也是基于这样的目的。只不过这里的坐标值是Apache
组织的每个项目的位置,通常由目标所在的项目名称和目标名称组成。如下图所示。
这些值通常是难以记忆的,当然也不排除大神的存在。当我们需要导入某个jar
包时,可以通过网络查找这些坐标值,这里目前使用了下面的搜索网站,搜素坐标网站。
将上图所示的坐标值复制到pom.xml
的dependencies
节点下,便可以自动从远程核心仓库中下载所需要的jar
包,当然,如果在之前使用过,则会从本地仓库中导入。
除了上述通过坐标直接在pom.xml
文件中配置依赖的方式外,使用Eclipse
可以通过添加添加工具进行依赖的添加。
通过第二种方式添加,前提是在本地仓库中有所需要的依赖,没有则建议使用在pom.xml
中配置坐标值的方式。
至于maven
中scope
属性值的具体含义,可以参考这篇博文:scope属性值的意义。