Maven学习笔记

一. Maven的搭建

1.Eclipse默认内嵌Maven

2.集成外置的Maven

Maven -> Installations -> Add :导入外置Maven的文件夹

3.运行原理

  • 本地仓库:存放本地jar包的本计算机上的文件夹;

  • 中央仓库:互联网上存放jar包的仓库,国内镜像为阿里巴巴仓库(传输速度较快);

  • 其他外部仓库:如公司仓库,存放一些不公开的项目jar包,如商用项目等等;

4.配置自定义的Maven配置xml

Maven -> Installations -> UserSettings :导入外置Maven的settings.xml

5.settings.xml的相关配置

  • 本地仓库配置:存放下载的jar包;

        E:\study\Java\maven\repository
    
  • 镜像配置:提升download速度;

        
          
            alimaven
            aliyun maven
            http://maven.aliyun.com/nexus/content/groups/public/
            central        
          
        
    
  • 修改JDK版本(运行时环境,若不配置,将导致出现编译器报错:JDK版本与Maven默认版本不一致);

      
      	jdk-1.8
      	
      		true
      		 1.8
      	
      	
      		1.8
      		1.8
      		1.8
      	
      
    

6.maven坐标(项目的相关信息)

  • GroupID: 公司名称;

  • ArtifactID: 项目名称;

  • Version;

7.maven项目创建

  • 选择simple选项,构建简单的maven项目;

  • package:

      1.jar: java项目包
      
      2.war: web项目包
    
      3.pom: Project Object Modal(当创建多个项目,且项目间存在父子关系时选择)
    
  • name&description: 工程相关描述(当导入远程仓库时使用);

  • 创建工程的具体过程:

    1. 在src/main/webapp/下创建WEB-INF文件夹,以及web.xml(或是通过右键项目使用JavaEE tools自动生成上述文件与文件夹);

    2. 在pom.xml导入servlet必须的jar包:javax-servlet及jstl;其中javax-servlet的坐标信息后可添加provicded表示仅在编译期间生效,防止在运行期间与tomcat自带的servlet包冲突而保错;

    3. 在plugin标签中添加tomcat插件,表示该项目独立使用一个tomcat插件,而非eclipse自带的tomcat插件;优点:便于分布式运行,降低服务器的运行压力;

       tomcat插件需对一些具体信息进行声明:
       1.如tomcat的运行端口号(必须唯一)
       2. 项目发布后的访问路径名称,为"/"则表示ROOT(tomcat的根项目目录),
       可定义为任意的值,注意:对项目实际在本地磁盘上的路径不造成影响,只改变访问的路径
      
    4. 在添加完成具体的tomcat插件后,在发布项目之前需对maven进行清理操作,即右键maven build,并在goal文本框中填写指令:clean tomcat7:run其中7对应相应的tomcat的版本号,若不附加则默认为6;

    5. 项目右键maven build;

8.maven目录描述

  • src/main/java: 存放项目的package(java代码);

  • src/main/resource: 存放配置文件(properties,xml等),此目录是逻辑地址,当项目编译后自动存放于类路径下

9.maven的项目间关系

  • mvnrepository: 搜索jar包的相应信息(GID,AID,version等等)

  • 依赖关系: pom.xml : 添加依赖(导入jar包信息)

  • 继承关系: (利于版本控制,父项目可控制所有子项目的引入jar包的version信息)

      1. 构建项目时选择pom;
      2. 子项目版本与父项目版本一致时,可不配置groupID与version;
      3. 根项目为pom类型,叶项目为jar或war类型(存在继承时为pom 类型);
      4. 父项目与子项目没有包含关系 ,即父项目不明确子项目的数目,子项目可游离在父项目外,两者是逻辑关系;
      5. 简化版本控制的方法:在父项目pom.xml的properties标签中声明各个jar包的version信息,便于管理,
      在dependency标签中只需引入对应的值即可“${项目版本标签名}”
    
      	
      		
      	
      	...
      	
      		...
      		
      			a groupID
      			a jar
      			${a jar-version}
      		
      		...
      	
    
  • 聚合关系:

      1. 在父项目下建立Maven Module:
      2. 子项目中新增标签
      3. 父项目包含子项目,即子项目是父项目的模块,是内含物;
    

你可能感兴趣的:(Maven学习笔记)