Maven

maven拾遗

  maven是一种很常见的项目管理工具。关于它的基础知识,从maven入门教程可以全面学习。
在这里,主要是对日常工作遇到的问题进行记录,加以学习。详细了解maven可以使我们对项目结构理解更为深刻,科学规范的maven设置,可以避免很多错误出现,对maven的精细化设置思想也可以应用到项目开发、管理中。
每一点都清晰,才是清晰

1、packing设置

maven的打包设置,可以设置为jar(默认)、pom、war。
打包方式是与工程构建的生命周期对应的,这里就需要对maven中的生命周期和项目工程中的生命周期概念进行了解,请在下文了解。

1、pom主要是作为项目依赖的版本控制的,也就是说主要是为了在pom.xml中管理各个依赖版本等信息,此外不具有其他意义。
       这里,我曾经在一个自定义starter项目中设置packing为pom,结果导致Springboot无法扫描加载该项目中的spring.factories文件定义的配置类。
2、jar 项目,主要是提供给其他项目使用,简单理解为将一些公共的配置类、工具类等集中到一个项目中写入,然后以jar的形式提供给其他项目使用。
3、war 项目主要是打包以部署到服务器使用。

生命周期

1、项目工程的生命周期基本上是指清理、编译、测试、打包和部署。
2、maven根据常见的开发过程,定义了一系列的maven生命周期规范,主要有清理、初始化、编译、测试、打包、集成测试、验证、部署和生成站点这些步骤。主要又被分为clean、default、site三个步骤,目的分别是清理,编译测试打包部署,和建立、发布站点。
3、maven只是定义了生命周期,完成这些步骤需要一定的实现,主要是通过mavne的插件来完成的,并非maven本身。

2、scope设置

maven依赖的作用范围设置。主要可以设置为compile、provided、runtime、test、system。

compile:是依赖的默认作用范围,其依赖在所有的生命周期内都会有效。
provided:在编译、测试期间有效,但是在运行期间就无效了。比如servlet相关的jar,在运行期间因为有相关web容器的存在就不必了。
runtime:在运行和测试期间有效。比如jdbc相关驱动,只有在项目运行的时候–运行、测试阶段,才会有需要。
test:就是测试的时候才会有效。比如junit依赖。
system:在编译和测试时才会有效。主要是引入第三方依赖,无法从maven仓库引入的依赖,与主机密切绑定,必须使用systempath参数指定路径引入。这里需要注意,当打包的时候,该作用范围的依赖很可能不会打入到jar中,需要在打包插件中设置

				<configuration>
                    <includeSystemScope>true</includeSystemScope>
                </configuration>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值