黑马程序员技术交流社区

标题: 【石家庄校区】就业班_JavaEE_day47_48_Maven [打印本页]

作者: 风中的消逝    时间: 2018-7-6 09:55
标题: 【石家庄校区】就业班_JavaEE_day47_48_Maven
就业班_JavaEE_day47_48_Maven


一概述
    1 项目管理工具,    通过pom.xml来管理依赖的jar包  通过plugin来管理项目的生命周期。通过maven将项目的目录结构进行了统一。
    2 仓库  分为本地仓库(本地的一个文件夹 通过配置关联maven) 私服(私人服务器,一般在局域网内搭建) 中央仓库(maven官方提供)

二maven下载安装本地仓库配置
   1 settings.xml中配置本地仓库目录 <localRepository>D:\lib\repository_ssh</localRepository>
   2 eclipse集成maven   
        a 首选项配置maven安装目录 b 首选项配置usersettting 指定settingxml c maven视图更新索引
        
三快速入门
   1 新建maven工程,选择create a  simple project 定义工程坐标  groupid 一般定义项目名称 artifactid 一般定义模块名称  version 版本 snapshot快照版本 release 正式发行版本
   2 修改jre版本。 add plugin  compile  
               <version>2.3.2</version>
               <configuration>
                    <source>1.7</source>
                    <target>1.7</target>
                </configuration>
   3 添加jar包依赖
      add Dependency  可以导入本地仓库中 也可以在网上找资源的坐标
   4 项目的生命周期  通过plugin来操作
      clean(清除)  default(构建项目)   site 不用
   5 通过命令行或者eclipse来管理项目
         配置maven_home 和 path
         通过eclipse需要给jre指定运行参数才能使命令生效   -Dmaven.multiModuleProjectDirectory=$MAVEN_HOME
         主要命令  clean 清理  compile 编译  package 打包  install  发布到本地仓库

四 ssh项目搭建
    1创建maven项目 包选择war
    2 添加jre的plugin   
       tomcat的plugin
       <plugin>
                <groupId>org.apache.tomcat.maven</groupId>
                <artifactId>tomcat7-maven-plugin</artifactId>
                <version>2.2</version>
                <configuration>
                    <port>8080</port> //表示tomcat端口号
                    <path>/mavenweb</path> //表示访问路径
                </configuration>
        </plugin>
    3 添加ssh的相关依赖包
     其中需要添加servletapi的依赖
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>servlet-api</artifactId>
            <version>2.5</version>
            <scope>provided</scope>
        </dependency>
    4 添加web.xml applicationContext.xml  struts2.xml 等配置文件
    5 tomcat7:run  运行程序
        window下查找8080端口被占用命令 :netstat -ano | findStr 8080
    6     定义变量  
    <properties>
        <spring.version>4.2.4.RELEASE</spring.version>
    </properties>
    <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-aspects</artifactId>
            <version>${spring.version}</version>
    </dependency>

五 聚合和继承
    1 新建maven 项目,项目的package要选择pom。
    2 新建maven module ,选择parent为第一步新建的聚合项目。
    这样在聚合项目的pom中将产生如下配置
     <modules>
      <module>aaa</module>
    </modules>
    在module项目的pom中将产生如下配置
     <parent>
        <groupId>com.itheima.parent</groupId>
        <artifactId>parent</artifactId>
        <version>0.0.1-SNAPSHOT</version>
      </parent>
      聚合是把多个模块或项目聚合到一起,我们可以建立一个专门负责聚合工作的Maven 工程。作为父项目可以将多个模块管理起来,作为
      子模块可以从父项目中继承依赖。
      关系:亲生(二边都有关系维护)  领养(只在父亲一方有维护关系即在modules中)  私生子(只在孩子一方维护关系,即维护parent关系)
         
六  构建多模块maven工程
      二种构建方式: 按业务模块分; 按分层分;
      其中按分层分
      erp_parent   pom (编译运行的操作在父工程中)   erp_domain jar  erp_dao jar  erp_service jar   erp_web war (配置文件都放在该module中,因为是war包所以要添加web.xml)
      applicationContext.xml文件拆分   需要注意在web.xml中修改applicationContext文件的引用  classpath*:applicationContext*.xml   第一个*表示引用多个项目中的文件  第二个*表示引用的文件以applicationContext开头。
      通常实际按照业务模块进行划分。

七 依赖管理
    1 依赖范围   
    主要关注 compile(编译,表示在编译测试运行三个阶段都需要该jar包) test(测试,表示只在测试阶段需要该jar包)  provided (表示只在编译和测试阶段需要该jar包)
    不配置scope ,默认范围是compile
    2 依赖传递  a依赖b  b依赖c  所以a依赖c
    3 依赖排除 jar包冲突 通过exclusion来删除其中一个,通常删除其中的低版本。
        <exclusions>
              <exclusion>
                  <groupId>javassist</groupId>
                  <artifactId>javassist</artifactId>
              </exclusion>
          </exclusions>
        
八 私服
    私服配置  在maven的setttings.xml中配置
      <mirror>  
       <id>nexus-aliyun</id>  
       <mirrorOf>*</mirrorOf>  
       <name>Nexus aliyun</name>  
       <url>http://maven.aliyun.com/nexus/content/groups/public</url>  
    </mirror>
    进行配置后依赖查找顺序为:本地仓库--私服--中央仓库 ,找到则返回。
    如果是要往私服中添加jar包,则需要知道用户名和密码,来连接仓库。在maven的setttings.xml中配置
     <server>
      <id>deploymentRepo</id>
      <username>repouser</username>
      <password>repopwd</password>
    </server>
   
九 SVN
    版本管理工具  签出 签入   客户端和eclipse插件二种形式   






欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2