imooc 项目管理利器 maven 课程笔记

imooc 项目管理利器 maven 课程笔记_第1张图片https://www.imooc.com/learn/443

目录结构


imooc 项目管理利器 maven 课程笔记_第2张图片

 

install 之后,其他项目就可以正常地 import 了。

 


 

-DgroupId 反写域名 +项目名

-DartifactId 模块名(用连字符)

-Dversioin 版本号

-Dpackage 反写域名+项目名+模块包名

imooc 项目管理利器 maven 课程笔记_第3张图片

 


groupId artifactId 合成一个依赖的“坐标”

仓库和镜像仓库的地址和本地仓库路径 可以在 $MAVEN_HOME/conf/settings.xml 里配置

 

Eclipse 中的 Maven

问题:Perhaps you are running on a JRE rather than a JDK?

解决:在 BuildPath - Add library - System JRE 选择系统的 JRE运行环境 即可成功构建


 

 

 

imooc 项目管理利器 maven 课程笔记_第4张图片

 

imooc 项目管理利器 maven 课程笔记_第5张图片

 

imooc 项目管理利器 maven 课程笔记_第6张图片

imooc 项目管理利器 maven 课程笔记_第7张图片

imooc 项目管理利器 maven 课程笔记_第8张图片

 

插件:maven.apache.org/plugins/index.html

 

       

              

                     

                           org.apache.maven.plugins

                           maven-source-plugin

                           2.4

                           

                                  

                                         package

                                         

                                                jar-no-fork

                                         

                                  

                           

                     

              

       

 


Maven 项目和实际项目并不是一一对应的关系,因为 Maven 体现的是模块化的概念,所以一个实际项目往往被划分成很多的模块。

snapshot  alpha beta release GA 版本号的意义

http://www.blogjava.net/RomulusW/archive/2008/05/04/197985.html

https://blog.csdn.net/zmken497300/article/details/51707967/

 

排除传递依赖

管理依赖继承关系

 

子模块继承

指定模块进行编译


依赖范围

http://maven.apache.org/guides/introduction/introduction-to-dependency-mechanism.html#Dependency_Scope

开发中,如果需要使用框架,则需要将框架的 jar 包引入到项目的classpath路径中。Maven提供了三种classpath :编译,测试,运行

 Servlet

 JDBC

imooc 项目管理利器 maven 课程笔记_第9张图片

import http://maven.apache.org/guides/introduction/introduction-to-dependency-mechanism.html#Importing_Dependencies

 


依赖传递

山鸡-》浩南-》B哥

修改Maven Settings 文件

https://www.cnblogs.com/30go/p/7154298.html

  

    jdk-1.8  

      

        true  

        1.8  

      

      

        1.8  

        1.8  

        1.8  

      

如此就创建Maven项目识,就不需要手动修改BuildPath 中的 JDK版本了

 

exclusion 包groupId ,artifactId,不包含 version


 

依赖冲突

imooc 项目管理利器 maven 课程笔记_第10张图片

中心库

http://mvnrepository.com/tags/maven

commons-io

http://mvnrepository.com/artifact/commons-io/commons-io

 

山鸡-》浩南-》B哥

浩南->commons-io2.0

B哥->commons-io2.4

则 山鸡得到的是commons-io2.0,因为楠哥离山鸡更近

imooc 项目管理利器 maven 课程笔记_第11张图片

 

imooc 项目管理利器 maven 课程笔记_第12张图片

 

如,山鸡同时依赖南哥和B哥,南哥(2.0)和B哥(2.4)没有依赖关系,则哪个dependency 在前面,就用哪个版本的jar

imooc 项目管理利器 maven 课程笔记_第13张图片

 


 

聚合和继承

 

pom

...

       

              ../hongxing-bge

              ../hongxing-nange

              ../hongxing-shanji

       

运行 clean install 实现继承

 

由于三个人都有Junit依赖,所以可以将junit 抽取形成父依赖

 

新建 hongxing-parent maven 项目pom 关键如下:

  pom

  hongxing-parent

  http://maven.apache.org

  

    UTF-8

    3.8.1

  

  

  

  

    

      junit

      junit

      ${junit-version}

      test

    

  

    

  

 

“子”项目引用pom如下,新增parent标签包裹父项目的坐标,依赖列表中删除version 和 scope 标签:

        

              com.hongxing

              hongxing-parent

              0.0.1-SNAPSHOT

       

       

              

                     junit

                     junit

              

              

                     commons-io

                     commons-io

                     2.4

              

       

 

如果不删除dependency 中的version 和 scope ,则 以子覆盖父

imooc 项目管理利器 maven 课程笔记_第14张图片

 

 


新建 Web 项目

一、新建 maven  模板不用之前的quickstart 而是 webapp,然后去中央仓库找到 servlet API 添加进来,如下:

              

                     junit

                     junit

                     4.10

                     test

              

              

              

                     javax.servlet

                     javax.servlet-api

                     3.1.0

                     

                     provided

              

       

 

二、creat floder 创建 src/main/java 和 src/test/java src/test/resources

 

三、检查 properties -> buildpatch -> scource 确保output folder 都是  项目/target/classes

imooc 项目管理利器 maven 课程笔记_第15张图片

 

四、检查 properties -> buildpatch -> project facets 勾选了 Dynamic Web Module

imooc 项目管理利器 maven 课程笔记_第16张图片

五、修改部署时的默认配置

右键项目 properties-> depolyment assembly  将 src/test  下的内容都remove掉。

imooc 项目管理利器 maven 课程笔记_第17张图片

五步完成即创建成功。使用package 命令将其打包并发布到指定的Web容器中,就可以在浏览器中访问了.

 

引入jetty 

              webdemo

              

                     

                           

                                  org.eclipse.jetty

                                  jetty-maven-plugin

                                  9.4.12.RC1

                     

              

       

 

Run As -> Maven Build  -> jetty:run

imooc 项目管理利器 maven 课程笔记_第18张图片

imooc 项目管理利器 maven 课程笔记_第19张图片imooc 项目管理利器 maven 课程笔记_第20张图片

成功运行后,访问localhost:8080即可看到 Hello World! 内容。

 

 

不想每次输入 jetty:run,打包成功后使用jetty:run来运行jetty服务, 可以修改pom plugin 的execution标签,如下:

              webdemo

              

                     

                           

                           org.eclipse.jetty

                           jetty-maven-plugin

                           9.4.11.v20180605

                           

                                  

                                         

                                         package

                                         

                                                run

                                         

                                  

                           

                     

              

       

 

注意关掉之前正在运行的jetty ,否则会报端口占用的错误。

 

Tomcat

使用tomcat 也是,直接替换Jetty 的坐标即可

https://tomcat.apache.org/maven-plugin-2.2/

https://tomcat.apache.org/

  org.apache.tomcat.maven

  tomcat7-maven-plugin

  2.2

or

  org.apache.tomcat.maven

  tomcat6-maven-plugin

  2.2

              webdemo

              

                     

                           

                           org.apache.tomcat.maven

                           tomcat7-maven-plugin

                           2.2

                           

                                  

                                         

                                         package

                                         

                                                run

                                         

                                  

                           

                     

              

       

imooc 项目管理利器 maven 课程笔记_第21张图片

    

imooc 项目管理利器 maven 课程笔记_第22张图片

运行成功 http://localhost:8080/webdemo/ 

 


课程总结

imooc 项目管理利器 maven 课程笔记_第23张图片

 

你可能感兴趣的:(java)