A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 厦门校区   /  2018-8-1 19:05  /  4635 人查看  /  33 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

王清松
Maven
        概述
                apache的开源项目,是项目管理工具,用于管理java项目
        组成
                项目对象模型(Project Object Model)
                        每个maven工程中都有一个pom.xml文件,用于定义工程所依赖的jar包、本工程的坐标、打包运行方式
                依赖管理系统
                        maven通过坐标对项目工程所依赖的jar包统一规范管理
                maven定义了一套项目生命周期
                        清理
                        初始化
                        编译
                        测试
                        报告
                        打包
                        部署
                        站点生成
                一组标准集合
                        强调:maven工程有自己标准的工程目标结构、定义坐标有标准
                maven管理项目生命周期过程都是基于插件完成的
        仓库
                中央仓库
                        远程仓库,仓库中的jar由maven团队统一维护
                        http://repo1.maven.org/maven2/
                本地仓库
                        相当于缓存,工程第一次会从远程仓库下载jar包,将jar包存在本地仓库
                私服
                        相当于一个代理仓库,本地仓库向私服请求资源,私服有就直接返回资源,如果没有就去中央仓库请求资源,然后下载后返回给本地仓库
        环境搭建
                到maven官网下载http://maven.apache.org/download.cgi
                配置本地仓库
                        找到apache-maven-3.3.9\conf\settings.xml
                        在<settings>标签下配置本地仓库所在路径
<localRepository>D:\develop\maven_local_repository</localRepository>
                eclipse配置maven
                        配置maven安装目录
                                【Window】-【Preferences】-【Maven】-【Installations】
【Add...】,在Installation home配置maven路径即可
                        配置User Settings
                                【Window】-【Preferences】-【Maven】-【User Settings】
在User Settings配置apache-maven-3.3.9\conf\settings.xml
依次点击Update Settings-Reindex-Apply
                        重建本地仓库索引
                                【Window】-【Show View】-【Other...】-【Maven】-【Maven Repositories】
【Local Repositories】-【Local Repository(...)】,右键,Rebuild Index
                设置编译版本
                        【右键】-【Maven】-【Add Plugin】
搜索compiler,选择版本,并作一定补充后,Update Project...
————————————————————————————
<plugin>
  <groupId>org.apache.maven.plugins</groupId>
  <artifactId>maven-compiler-plugin</artifactId>
  <version>2.3.2</version>
  <configuration>
    <source>1.8</source>
    <target>1.8</target>
  </configuration>
</plugin>
                配置环境变量
                        变量名:MAVEN_HOME
变量值:Maven根目录路径
                        变量名:PATH
变量值:%MAVEN_HOME%\bin
                        变量名:M2_HOME
变量值:Maven根目录路径
        项目生命周期
                分类
                        clean清理项目
                                pre-clean
                                clean
                                post-clean
                        default构建项目(核心)
                                ...
                                        validate
                                        initialize
                                        generate-sources
                                        process-sources
                                        generate-resources
                                        process-resources
                                compile编译源代码
                                ...
                                        process-classes
                                        generate-test-sources
                                        process-test-sources
                                        generate-test-resources
                                        process-test-resources
                                        test-compile
                                        process-test-classes
                                test单元测试运行测试代码
                                ...
                                        prepare-package
                                package将编译好的代码打包
                                ...
                                        pre-integration-test
                                        integration-test
                                        post-integration-test
                                        verify
                                install安装到本地Maven库
                                ...
                                        deploy
                        site生成项目站点
                                pre-site
                                site
                                post-site
                                site-deploy
                注意:三套生命周期相互独立,后面的阶段依赖于前面的阶段
        常见命令
                compile编译(生成target目录并存放编译好的class文件)
                clean清理(清理target目录下的class文件)
                test执行单元测试类
                package打包
                install将工程的jar发布到本地仓库
        项目搭建
                1.建立一个父项目名称为xxx_parent(打包方式为pom),将所需要的所有依赖都配置在该项目的pom中
                2.建立子项目xxx_dao\service\entity(打包方式为jar)....继承xxx_parent
                3.建立子项目xxx_web(打包方式为war)....继承xxx_parent
                4.给子项目添加依赖,action依赖service,service依赖dao,dao依赖entity
                5.拆分配置文件
                        事务管理在service层,即xxx_service项目中,打包后会在该jar包中
                        数据源相关在dao层,即xxx_dao项目中,打包后会在该jar包中
                        注意!此时配置文件分布于多个项目,想要同时读取需要修改在web.xml中声明applicationContext.xml位置的参数信息
                                在classpath后添加一个*
———————————
<context-param>
  <param-name>contextConfigLocation</param-name>
  <param-value>classpath*:applicationContext*.xml</param-value>
</context-param>
        依赖
                依赖范围
                        用于控制依赖与3种classpath的关系
                                编译classpath
                                测试classpath
                                运行classpath
                        compile
                                默认值,编译有效、测试有效、运行有效
                                如spring-core
                        test
                                编译无效、测试有效、运行无效
                                如JUnit
                        provided
                                编译有效、测试有效、运行无效
                                如servlet API
                        runtime
                                编译无效、测试有效、运行有效
                                如JDBC驱动包
                依赖传递
                        关系:a依赖b,b依赖c
                        1.a编译如果需要b,b编译如果需要c,则a编译需要c
                        2.a测试、运行如果需要b,b运行需要c,则a测试、运行需要c
                        3.根据1.2推断,a编译是否需要c,a测试是否需要c,a运行是否需要c
                        4.与4种依赖范围进行匹配推断a对c的依赖传递
                依赖调节
                        原则一:路径优先,依赖路径浅的优先
                        原则二:声明优先,依赖路径深度相等,声明在前的被引用
        核心配置文件pom.xml
                版本锁定
                        <dependencyManagement>
  <dependency>
    <groupId>org.hibernate</groupId>
    <artifactId>hibernate-core</artifactId>
    <version>5.0.7.Final</version>
  </dependency>
</dependencyManagement>
                        优先级
<dependencies>-<dependency>-<version>高
<dependencyManagement>-<dependency>-<version>低
                依赖排除
                        <dependency>
  <groupId>org.apache.struts</groupId>
  <artifactId>struts2-core</artifactId>
  <version>${struts.version}</version>
  <exclusions>
    <exclusion>
      <groupId>javassist</groupId>
      <artifactId>javassist</artifactId>
    </exclusion>
  </exclusions>
</dependency>
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马