Maven工程总结笔记

1、maven的生命周期方法:

complie、test、package、install等。
每个命令的含义:complie是编译的意思。就是在target目录下生成.class文件。package是打包的意思,生成的东西在target目录下。install是安装jar包到本地的仓库中。

2、maven工程要导入jar包的坐标,就必须要解决jar包的冲突。

1)解决jar包的冲突一:

第一声明优先原则: 哪个jar包的坐标在靠上的位置,这个jar包就是先声明的。先声明的jar包的坐标下的依赖包,可以优先进入项目中。

3、maven导入jar包的一些概念

直接依赖: 项目中直接导入的jar包,就是该项目的直接依赖包。
传递依赖: 项目中没有直接导入的jar包,可以通过项目直接依赖jar包传递到项目中去。

2)解决jar包的冲突二:

路径近者优先原则: 直接依赖路径比传递依赖路径近,那么最终进入项目的jar包会是路径近的直接依赖包。

3)解决jar包冲突的三:

(推介使用第三种方式),直接排除法(排除这个包下的依赖包)。当我们要排除某个jar包下的依赖包,在配置excluions标签的时候,内部可以不写版本号,因为此时依赖包下使用的版本和默认和本jar包一样。

4、maven工程是可以分父子依赖关系的。

凡是依赖别的项目后,拿到的别的项目的依赖包,都属于传递依赖。
比如:当前A项目被B项目依赖,那么我们A项目中所有的jar包都会传递到B项目中去,B项目中得到的这些jar包都属于传递依赖。B项目开发者如果再在B项目中导入一套ssm框架的jar包,对于B项目是直接依赖,那么直接依赖的jar包就会把我们A项目中传递过去的jar包覆盖掉。为了防止以上问题的出现,我们可以把A项目中主要的jar包坐标锁住,那么其他依赖该项目的项目即便是有同名的jar包直接依赖也无法覆盖。
解决办法:

// properties文件方便以后修改,好找,如果有多个文件,不会太乱。
 <properties>
	<spring.verson>3.23<spring.version>// 这里相当于键值对。下面通过el表达式引入进去。
</properties>

// 这个是锁定jar包版本,被其他依赖后他就不能被覆盖啦。
<deperencyManagement>
	<dependency>
		<groupId>com.itheima<groupId>
		<artifactId>Demo<artifactId>
		<version>${spring.version}</version>
	</dependency>
</deperencyManagement>
// 上下这两个都需要写,上面的只是起到锁定的作用,下面才是真正的引入。
<dependencyies>
	<dependency>
	...
	</dependency>
</dependencies>
// xml文件能写入什么标签,完全取决于头上面的约束。

5、maven使用骨架创建的项目目录结构是不完整的,需要我们手动补齐。跳过骨架创建的项目目录结构是完整的。

工程和模块的区别: 这里指的是maven工程。

  • 工程不等于完整的项目,模块也不等于完整的项目,一个完整的项目看的是代码,代码完整就可以说是一个完整的项目,和此项目是工程和模块没有关系。
  • 工程天生只能使用内部资源,工程天生是独立的。后天可以和其他工程或模块建立关联关系。模块天生不是独立的,模块天生是属于父工程的,模块是一旦创建,所有父工程的资源都可以继承下来使用。
  • 平级之间的引用叫依赖,依赖不是先天的,依赖是需要后天建立的。

1、aop是面向切面编程:切面就是切入点和通知的组合。

一般我们自己写的类使用注解的形式来表达。系统提供的类写到配置文件当中。

6、maven启动工程的三种方式

  1. 直接通过maven的Tomcat插件启动父工程。(记住是父工程)
  2. 如果启动模块中的web模块,必须先安装install其他依赖的模块,才可以正常启动,通常直接install安装父工程下面的模块也会跟着自动安装。
  3. 通过外部Tomcat服务器启动。web模块不需要启动。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值