zoukankan      html  css  js  c++  java
  • 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 运行

  • 相关阅读:
    leetcode33. Search in Rotated Sorted Array
    pycharm 设置sublime text3 monokai主题
    django class Meta
    leetcode30, Substring With Concatenation Of All Words
    Sublime text3修改tab键为缩进为四个空格,
    sublime text3 python打开图像的问题
    安装上imesupport输入法依然不跟随的解决办法,
    sublime text3 的插件冲突弃用问题,
    sublime text3 BracketHighlighter括号匹配的设置
    windows 下wget的使用
  • 原文地址:https://www.cnblogs.com/faded8679/p/10729793.html
Copyright © 2011-2022 走看看