Maven【笔记】

Maven

  • 提及开发目录和编译目录。两者其实是不一样的,就好比你写web项目时为什么一个html在webContent下,而我在路径上却不需要加/webContent呢?因为编译以后,这个文件就不存在了。所以运行之后都是要看编译目录的。
  • 提及项目名与上下文路径,项目名与上下文路径并不是非要相同,在Tomcat中,web访问是要看上下文路径(也就是你创建在webapp目录下的那个文件夹名),而ROOT中呢,是不需要任何前缀就可以直接访问的

maven:构建与依赖

  1. POM
  2. 约定的目录结构
  3. 坐标
  4. 依赖管理
  5. 仓库管理
  6. 生命周期
  7. 插件和目标
  8. 继承
  9. 聚合(一键操作所有项目)

target:complie后会生成target,里面就有编译好的内容

  • 为什么maven能够自动构建呢?我想因为我们都是按照约定的目录结构
  • 比如当你执行mvn install,实则他是包含了编译等内容,并不会仅仅执行install。这就关系到生命周期。
  • 其实有个疑惑?编译了放在本地又怎么样?Tomcat将jar编译后就能直接在网页上浏览,而maven编译后呢?

  • 坐标:就是那三样,什么groupId artifactId version
  • 依赖范围:provided(部署不能用)/test(只能用于test)/compile(为默认,三样都能用,main目录下/test目录下/部署到tomcat服务器上会放在其lib目录下)
  • 传递依赖:其实每个pom文件也有坐标,传递依赖的话只要你将其他pom文件的坐标加到你这儿就形成了传递
  • jar包冲突:①最短路径优先,当A->B->C,会优先选B,②声明优先
  • 依赖排除:传递依赖的dependence里面加个Exclusion
  • 统一版本管理:上面加一个properties标签,里面例如写<spring version></spring version>后面的版本都可以用${spring version}来记录
  • 生命周期:clean/default/site
  • 继承:<parent>父工程pom文件的那三样<relativePath>../parent/pom.xml</relativePath></parent>,注意:父工程要选pom类型,而不是jar或者war
    继承父工程后可以把自己的groupId和version去掉,因为直接引用父工程的了
    此时父类的要变为<dependencyManagement><dependencies>...
  • 聚合:在父类中<modules><module>../Hello</module><module>../A</module></modules>
    这样对父类进行操作,其他聚合的类也会跟着操作,一键操作就是聚合
posted @ 2020-12-06 20:42  lwxx  阅读(84)  评论(0)    收藏  举报