昨天,maven被下载和配置。今天,我们将实际操作它。
Maven的核心功能之一是管理项目依赖关系,可以理解为jar包。
有了它,就不用一个个在网上找jar包了,直接添加jar包的坐标就可以了。
那么如何导入呢?
一、依赖管理
在maven项目中,有一个核心配置文件pom.xml,其中可以引入依赖项。
1本地仓库引入
dependencies标签就像以前的lib包一样,dependencie标签也对应于jar包。
其中,关于标签名称:
GroupId:定义当前项目(jar包)所属的实际项目组。
ArtifactId:定义当前项目(jar包)的名称。
版本:定义当前项目(jar包)的版本号。
正是因为标签版本的存在,通过这个标签统一版本要方便得多。
因为这两种依赖非常常见,我的本地仓库中已经有了,所以导入依赖时可以根据提示导入。
此外,您还可以在开发工具中直接搜索依赖项:
使用快捷键Alt Insert搜索相应的依赖项,然后单击以引入依赖项。
但是,在这两种情况下,可以搜索本地仓库中相应的依赖关系。
如果本地仓库没有,则需要使用私有服务器。
2私服引入
昨天,在配置文件夹中配置了相应的专用服务器。
您可以通过复制阿里巴巴云私有服务器的路径来访问以下界面:
所需的依赖关系可以通过文件搜索功能来搜索,例如,我在这里搜索德鲁伊。
点击找到对应的jar包,可以下载对应的jar包,但是如果使用maven,就不需要下载了。
复制依赖项并将其引入项目。
引入依赖项后,开发工具的右下角会出现以下提示:
单击导入更改以完成依赖项的介绍。
依赖项也将被下载到本地存储库中。
二、依赖配置
在介绍了需要使用的依赖项之后,有时当前的依赖项不能直接使用,需要对这些依赖项进行配置。
1依赖范围设置
Maven有三种运行环境:编译类路径、测试类路径和运行类路径。
依赖关系范围设置用于控制依赖关系和这三个类路径之间的关系。
依赖关系范围都是在标签范围内配置的:
编译依赖范围compile
如果未指定,默认为该依赖范围。
使用这个依赖范围的Maven依赖对于编译、测试和运行三个类路径是有效的。
一个典型的例子是jdbcTemplate,它是编译、测试和运行代码时所必需的。
测试依赖范围test
使用这个依赖范围的Maven依赖只对测试类路径有效。
在编译和运行项目期间,不需要使用这种依赖关系。
一个典型的例子是Junit,它只在测试代码时起作用。
③已提供依赖范围:provided
使用此依赖范围的maven依赖在编译和测试classpath有效,但运行时无效。
典型的例子就是servlet-api。
编译和测试的时候需要使用servlet-api中的方法,但是使用tomcat运行项目的时候不需要。
我们查看下Tomcat的文件路径,会发现其本身就自带了该jar包。
所以Tomcat在运行期间会自动提供这个依赖。
如果我们引入的该依赖在运行时也有效,一旦和Tomcat自带的版本不一样,就会出现冲突。
④运行时依赖范围:runtime
使用此依赖范围的maven依赖对于测试和运行classpath有效,但在编译时无效。
典型的例子是JDBC驱动实现。
项目中只有在执行测试或者运行项目的时候才需要该依赖。
⑤系统依赖范围:system
该依赖和provided依赖范围完全一致。
但是此依赖不是来自Maven的中央仓库。
使用system范围的依赖时必须通过<systemPath>标签指定依赖文件的路径。
典型的例子是Oracle的驱动包。
该依赖从中央仓库无法下载,需要先将Oracle的驱动包下载到本地,再通过本地路径引入。
该依赖范围了解即可,使用不常见。
注意:
上述编译都是指对项目主代码的编译,不包含对于测试代码的编译。
2依赖版本维护
事实上,在一个项目中,需要引入的依赖是很多的,可能有几十个。
而各个依赖又有不同的版本,为了统一维护版本,可以专门将依赖的版本抽取出来统一管理:
在<properties>标签中放入各个依赖的版本号。
版本标签命名格式为依赖名.version。
在对应的依赖<version>中使用${}引入前面定义好的版本即可。