Maven的常用命令
即:
在这里输入cmd,即可弹出在当前目录下的cmd窗口
输入mvn clean
需要注意的是:第一次使用mvn命令时,会去下载相关的依赖包,这里是第一次使用clean,除了下载相关依赖时,还会清除项目中的编译好的class文件,即会删除target目录。
,这里是执行成功了的:
再来执行compile命令试试:
第一次使用compile命令时也会去下载相关jar包,所以才会执行有点久,compile是编译项目中的源文件,此时会生成一个target文件夹,里面放的是源文件编译好的.class文件
再来clean和编译一次试试看速度如何:
此时,就快了,
也可以使用mvn -help命令来获取更多操作信息。
这是在IDE工具外面去用命令来管理项目,实际开发中,可以借助IDE工具给我们提供的便利来实现上面的效果:
在idea中提供了一个类似于cmd窗口的功能,直接在里面输入Maven命令即可:
在eclipse中也可以实现这些操作。
Maven中配置代理镜像地址
当我们添加依赖时,Maven会先去本地仓库中去寻找,如果没有找到的话,就会去中央仓库中去下载,由于中央仓库的服务器地址在国外,我们去下载时的下载速度会受到限制,这时可以通过国内镜像代理来提升下载速度。
具体操作:修改Maven的配置settings.xml,来从国内的代理商提供的代理服务中去下载。一般使用阿里的代理镜像。
阿里云的云仓库服务地址:https://maven.aliyun.com
<mirror>
<id>aliyunmaven</id>
<mirrorOf>*</mirrorOf>
<name>阿里云公共仓库</name>
<url>https://maven.aliyun.com/repository/public</url>
</mirror>
所以只要把上面的代码复制到我们的Maven的配置settings.xml中即可。
Maven中的项目类型
Maven坐标
maven坐标:查找相对应的jar包
解析:pom.xml中引入的servlet-api jar包的作用域为provided,就是指编译有效,测试有效,当我们把这个scope标签去掉,那就相当于它的作用范围是Complie的,因为所有标签的作用域都默认是Complie的。在这种情况下,当把项目打包发布到Tomcat容器里时,Tomcat容器中也有一个servlet-api jar包,那么在访问页面时,因为两个jar包都是有效的,就产生了冲突,所以会报上面的错。如果定义了scope属性为provided时,在打包时,这个jar包就不会打包进去,所以就不会报错。
依赖冲突