• maven


    一.简介

    maven是Apache下面的一个存java语言开发的开源项目;基于项目对象模型(POM)

    maven是一个项目管理工具,可以对java项目进行构建,依赖管理(jar包)

    概念:

    1.maven中央仓库:

      中央仓库由maven的社区来提供,其中包含了大量常用的库

    2.maven远程仓库:

      我们自己定义的服务仓库

    3.maven本地仓库:

      我们自己本地电脑中的仓库,maven所需要的所有的构件都是直接从本地仓库进行获取

      如果本地仓库没有,首先尝试去中央仓库下载,然后去远程仓库中下载

    二、安装

    管网:http://maven.apache.org/

    下载:https://archive.apache.org/dist/maven/maven-3/

    1、解压

    把下载的压缩包中的文件夹解压到某个目录,比如

    2、配置环境变量

    MAVEN_HOME:地址

    PATH:%MAVEN_HOME%in 

    cmd:meven-version

    三、使用

    1.配置:

    confsetting 中   <localRepository>C:UsersAdministratorDesktopliwenzhengapache-maven-3.5.0.m2 epository</localRepository>

    这个路径可以自定义,用的时候要找到

    1.1 本地仓库

    这个路径可以自定义,只要你到时候可以找到就行

    1.2中央仓库

    <mirror>
        <id>maven1</id>
        <name>repo1</name>
        <mirrorOf>central</mirrorOf>
        <url>http://repo1.maven.org/maven2</url>
    </mirror>
    <mirror>
        <id>maven2</id>
        <name>repo2</name>
        <mirrorOf>central</mirrorOf>
        <url>http://repo2.maven.org/maven2</url>
    </mirror>
         
    <mirrors>
        <mirror>
          <id>alimaven</id>
          <name>aliyun maven</name>
          <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
          <mirrorOf>central</mirrorOf>        
        </mirror>
    </mirrors>
    中央仓库 配置

    1.3远程仓库

    只需要在repositories节点中配置即可

    maven 配置 jdk1.8

    <!-- 全局jdk配置,settings.xml -->  
        <profile>    
            <id>jdk18</id>    
            <activation>    
                <activeByDefault>true</activeByDefault>    
                <jdk>1.8</jdk>    
            </activation>    
            <properties>    
                <maven.compiler.source>1.8</maven.compiler.source>    
                <maven.compiler.target>1.8</maven.compiler.target>    
                <maven.compiler.compilerVersion>1.8</maven.compiler.compilerVersion>    
            </properties>     
        </profile>    
    maven配置jdk1.8

    只需要在repositories节点中配置即可(略)

    1.4 maven编译环境

    可选的,在profiles节点中配置

    <profile>  
            <id>jdk1.8</id>  
            <activation>  
                <activeByDefault>true</activeByDefault>  
                <jdk>1.8</jdk>  
            </activation>  
            <properties>  
                <maven.compiler.source>1.8</maven.compiler.source>  
                <maven.compiler.target>1.8</maven.compiler.target>  
                <maven.compiler.compilerVersion>1.8</maven.compiler.compilerVersion>  
            </properties>   
        </profile>

    maven构建项目的生命周期

    阶段处理描述
    验证 validate 验证项目 验证项目是否正确且所有必须信息是可用的
    编译 compile 执行编译 源代码编译在此阶段完成
    测试 Test 测试 使用适当的单元测试框架(例如JUnit)运行测试。
    包装 package 打包 创建JAR/WAR包如在 pom.xml 中定义提及的包
    检查 verify 检查 对集成测试的结果进行检查,以保证质量达标
    安装 install 安装 安装打包的项目到本地仓库,以供其他项目使用
    部署 deploy 部署 拷贝最终的工程包到远程仓库中,以共享给其他开发人员和工程

    3、eclipse集成maven

    4、maven项目结构

    pom.xml中依赖的信息

    <dependency>
                <!-- 跟包 -->
                <groupId>mysql</groupId>
                <!-- 项目名 -->
                <artifactId>mysql-connector-java</artifactId>
                <!-- 版本号 -->
                <version>5.1.47</version>
                <!-- 表示范围: 
                    compile-默认的,参与编译、运行、测试、打包 
                    test-测试,参与编译、运行、测试、不参与打包 
                    provided-参与编译、运行、测试、不打包 
                    runtime-参与运行、测试、打包 
                    system-和provided相同 -->
                <scope>compile</scope>
            </dependency>

    5、maven-web项目发布上线

    5.1 本地打包

    在自己本地使用eclipse工具的maven插件,把maven项目进行打包

    项目 – 右键 – run as – maven install

    使用上面的操作,即可将项目打包

    5.2 war包拷贝到webapps

    打包之后,需要再war包拷贝到tomcat的webapps目录中

    5.3 startup.bat启动服务

    在tomcat的bin目录中双击startup.bat启动服务

    注意的是,需要电脑环境有jdk的环境变量配置

    5.4 访问

    6.maven多模块开发

    项目分包:po  dao  servlet  util.......

    6.1 说明

    在平时javaweb开发中为了方便后期的维护,我们一般会进行分层开发,最常见的分层:

    po(模型层)、

    dao(数据库访问层)、

    service(业务逻辑层)、

    web(表现层);

    这样分层之后,各个层之间的职责会比较明确,后期维护相对容易

    多模块项目结构:

    system-parent:

      pom.xml

      system-po

        pom.xml

      system-service

        pom.xml

      system-web

        pom-xml

      以前的项目,每层都是一个包,现在每层都需要创建一个单独的模块,通过maven依赖关系来设置模块和模块之间的联系

    注意:

      po  util  dao  service  web 都需要去继承parent模块(父模块)

      parent 模块打包的类型必须是pom

      web模块打包的类型必须是war:

      其余模块打包的类型就是jar:

    模块间的依赖关系:

      web -------po  service

      service---------po   dao

      dao-----------po

    依赖性传递

      依赖的传递性,比如dao依赖po模块,service依赖dao模块,那么service模块自动以来po模块

    6.6 案例演示

    整体项目结构

      

    parent是父项目,新建时需要选择:maven project

    其余模块的子项目,需要继承parent,新建时需要选择:maven module

    6.6.1 maven-parent

    6.6.2 maven-po

    6.6.3 maven-dao

    6.6.4 maven-service

    6.6.5 maven-web

    6.6.6 依赖关系

    maven-po/pom.xml

    <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <version>1.18.2</version>
            <scope>provided</scope>
        </dependency>

    maven-dao/pom.xml

    <!-- dao模块依赖po模块 -->
          <dependency>
              <groupId>com.yujun.maven</groupId>
              <artifactId>maven-po</artifactId>
              <version>1.0</version>
          </dependency>
          
          <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>5.1.47</version>
        </dependency>

    maven-service/pom.xml

    <!-- service模块依赖于dao模块 -->
          <dependency>
              <groupId>com.yujun.maven</groupId>
              <artifactId>maven-dao</artifactId>
              <version>1.0</version>
          </dependency>

    maven-web/pom.xml

    <!-- web模块依赖于service模块 -->
          <dependency>
              <groupId>com.yujun.maven</groupId>
              <artifactId>maven-service</artifactId>
              <version>1.0</version>
          </dependency>
          
          <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>javax.servlet-api</artifactId>
            <version>3.1.0</version>
            <scope>provided</scope>
        </dependency>
    6.6.7 案例代码

    maven-po

    maven-dao

    maven-service

    maven-web

    maven-web/web.xml

    <servlet>
        <servlet-name>UserServlet</servlet-name>
        <servlet-class>com.yujun.maven.web.servlet.UserServlet</servlet-class>
      </servlet>
      <servlet-mapping>
        <servlet-name>UserServlet</servlet-name>
        <url-pattern>/userServlet</url-pattern>
      </servlet-mapping>
    6.6.8 运行

  • 相关阅读:
    js正则匹配以某字符串开始字符串
    vue+vue-resource+vue-cookie随笔
    [考试反思]1001csp-s模拟测试(b):逃离
    [考试反思]0929csp-s模拟测试55:消逝
    [考试反思]0928csp-s模拟测试54:转瞬
    [考试反思]0927csp-s模拟测试53:沦陷
    [考试反思]0926csp-s模拟测试52:审判
    [考试反思]0924csp-s模拟测试51:破碎
    Function:凸包,决策单调性,题意转化,单峰函数三分,离线处理
    土兵占领:二分答案,最大流
  • 原文地址:https://www.cnblogs.com/faded8679/p/10729793.html
Copyright © 2020-2023  润新知