Maven(二):常用命令、依赖管理

Maven(二):常用命令、依赖管理

 

相关阅读:

Maven(一):安装与环境配置、使用Maven搭建web项目

Maven(二):常用命令、依赖管理

Maven(三):将web项目的war包热部署到远程Tomcat服务器

Maven(四):使用maven整合Spring+SpringMVC+Mybatis框架详细步骤

Maven(五):使用maven整合Struts2+Spring+Hibernate框架详细步骤


 

在上一篇文章中,我们介绍了maven的安装配置与使用maven创建了一个web项目,现在,我们就稍微了解下maven工程的一些基础知识:

1、maven项目标准的目录结构:

Maven(二):常用命令、依赖管理

对项目进行细分:

Maven(二):常用命令、依赖管理

 

2、maven的常用命令:

maven常用的命令主要有:clear,compile,test,package,install,deploy。

(1)clean:清理:将项目根目录下的targer目录清理掉

Maven(二):常用命令、依赖管理

(2)compile:编译:将项目中的.java文件编译为.class文件

Maven(二):常用命令、依赖管理

(3)test:单元测试:将项目根目录下src/test/java目录下的单元测试类都会执行,单元测试类名有要求:XxxTest.java

Maven(二):常用命令、依赖管理

(4)package:打包:将项目打包,打包到项目根目录下target目录:

web project —war包

java project —jar包

(5)install:安装:打包到本地仓库,解决本地仓库多个项目公用一个jar包

(6)maven项目的生命周期:

在maven中存在“三套”生命周期,每一套生命周期相互独立,互不影响。在一套生命周期内,执行后面的命令,前面的操作会自动执行。

①CleanLifeCycle:清理生命周期:clean

②defaultLifeCycle:默认生命周期:compile、test、package、install、deploy

③siteLifeCycle:站点生命周期:site

 

3、依赖范围:

maven项目的核心配置文件是pom.xml,我们可以在这个文件中,添加需要依赖的Jar包,同时还可以在<scope>标签中配置jar的有效范围,即依赖范围,如下图:

Maven(二):常用命令、依赖管理

添加依赖:默认依赖范围是compile

provided:运行时部署到tomcat后不再需要

如果将servlet-api.jar设置为compile,打包后项目包含servlet-api.jar,war包部署到tomcat跟tomcat中存在的servlet-api.jar包冲突,导致运行失败:

Maven(二):常用命令、依赖管理

解决:修改依赖的范围:

Maven(二):常用命令、依赖管理

 

4、依赖管理:

(1)传递依赖:A依赖B,B依赖C,B是A的直接依赖,C是A的传递依赖。

遵循原则:

–第一声明者优先原则:谁先定义的就用谁的传递依赖

–路径近者优先原则:直接依赖级别高于传递依赖

(2)排除依赖:

Maven(二):常用命令、依赖管理

(3)版本锁定:(重点)

Maven(二):常用命令、依赖管理

Maven(二):常用命令、依赖管理

 

5、依赖传递的范围:

Maven(二):常用命令、依赖管理

 

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/114624.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • linux下解压命令大全「建议收藏」

    linux下解压命令大全「建议收藏」.tar解包:tarxvfFileName.tar打包:tarcvfFileName.tarDirName(注:tar是打包,不是压缩!)———————————————.gz解压1:gunzipFileName.gz解压2:gzip-dFileName.gz压缩:gzipFileName.tar.gz和.tgz解压:tarzxvfF…

    2022年5月17日
    32
  • tensorflow 层_win7怎么扩展屏幕

    tensorflow 层_win7怎么扩展屏幕前言读TensorFlow相关代码看到了STN的应用,搜索以后发现与增强网络对图像变换(旋转、缩放、偏移等)的抗干扰能力,简单说就是提高卷积神经网络的空间不变性。国际惯例,参考博客:理解SpatialTransformerNetworksgithub-STNDeepLearningPaperImplementations:SpatialTransformerNetwork…

    2022年8月30日
    1
  • SpringApplication初始化阶段[通俗易懂]

    SpringApplication初始化阶段[通俗易懂]在SpringFramework时代,Spring应用上下文通常由容器启动,如ContextLoaderListener或WebApplicationInitializer的实现类由Servlet容器装载并驱动。到了SpringBoot时代,Spring应用上下文的启动则通过调用SpringApplication.run(Object,String…)或SpringApplicationBuilder.run(String…)方法并配合@SpringBootApplication或@EnableAu

    2022年9月9日
    0
  • TCP 协议(包含三次握手,四次挥手)[通俗易懂]

    TCP 协议(包含三次握手,四次挥手)[通俗易懂]TCP特性1.确认应答(可靠传输的最核心机制)1.确认应答(可靠传输的最核心机制)可靠传输的最核心机制

    2022年5月5日
    63
  • 计算机内核态和用户态,用户态和内核态的区别是什么[通俗易懂]

    计算机内核态和用户态,用户态和内核态的区别是什么[通俗易懂]用户态和内核态的区别是,内核态运行操作系统程序,操作硬件,用户态运行用户程序;当程序运行在3级特权级上时,可以称之为运行在用户态,当程序运行在0级特权级上时,称之为运行在内核态。本文操作环境:windows10系统、thinkpadt490电脑。区别分析如下:1.操作系统需要两种CPU状态内核态(KernelMode):运行操作系统程序,操作硬件用户态(UserMode):运行用户程序2.指…

    2022年9月17日
    1
  • 【软件工具】服务器硬件资源监控

    【软件工具】服务器硬件资源监控服务器资源使用情况及硬件监控,是服务器管理员或运维人员必备的技能和工作内容。对于服务器硬件的时时监控,除了需要掌握定的方法外,还常会用到些相应的相关软件程序。当然,运维同仁般都具备定的编程能力,根据服务器情况,编写个便捷、好用和适合自己的服务器硬件监控软件也是很有必要的。     服务器硬件监控常用方法及相关软件:  raid卡监控:raid卡常有rai

    2022年8月30日
    1

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号