• maven


    一、什么是maven

      Maven是一个跨平台的项目管理工具,主要用于基于java平台的项目构建,依赖管理。

      

      如图为项目构建的过程。

      解决的项目的问题:

      1、  如果有好几个项目,这好几个项目中,需要用到很多相同的jar包,

        能不能只建立一个仓库来解决这个问题?

      2、测试方法能不能全部运行呢?

      3、怎么样把一个模块的功能放入到仓库中

    二、maven的安装与配置

      2.1 JDK必须为1.6以上

      2.2 从http://maven.apache.org/官网上下载最新版本的maven

      2.3 设定path路径

        把下载下来的maven解压缩,然后有一个bin文件夹,这是一个bin的文件夹的目录:F:workmavenin,把该目录追加到环境变量的path中。

      2.4 利用命令检查是否成功

      

      2.5 建本地仓库库

        先打开路径C:Users.m2,把F:workmavenconf下的settings.xml文件,复制到C:Users.m2。

        修改settings.xml,<localRepository>F:/work//mavenRepository/</localRepository>,指定仓库的路径。

      2.6 maven的配置

      

      说明:

        bin中存放可执行的二进制文件

        conf存放settings.xml文件

        lib  运行maven所依赖的jar包

      2.7 maven的约定

        src/main/java      存放项目的java文件

        src/main/resources  存放项目的资源文件,如spring,hibernate的配置文件  

        src/test/java       存放所有的测试的java文件

        src/test/resources   存放测试用的资源文件

        target            项目输出位置

        pom.xml  文件

    三、maven的核心概念

      3.1项目对象模型

      

      说明:

        maven根据pom.xml文件,把它转化成项目对象模型(POM),这个时候要解析依赖关系,然后去相对应的maven库中查找到依赖的jar包。

        在clean,compile,test,package等阶段都有相应的Plug-in来做这些事情。而这些plug-in会产生一些中间产物。

      3.2 maven的坐标

     

        groupId:定义当前maven项目属于哪个项目

        artifactId:定义实际项目中的某一个模块

        version:定义当前项目的当前版本

        packaging:定义当前项目的打包方式

        根据这些坐标,在maven库中可以找到唯一的jar包

    四、maven打包原理

      1、Maven中央存储库
      当你建立一个 Maven 的项目,Maven 会检查你的 pom.xml 文件,以确定哪些依赖下载。首先,Maven 将从本地资源库获得 Maven 的本地资源库依赖资源,如果没有找到,然后把它会从默认的 Maven 中央存储库  http://search.maven.org/  查找下载。
    在Maven中,当你声明的库不存在于本地存储库中,也没有不存在于Maven中心储存库,该过程将停止并将错误消息输出到 Maven 控制台。
      2、添加远程仓库
      默认情况下,Maven从Maven中央仓库下载所有依赖关系。但是,有些库丢失在中央存储库,只有在Java.net或JBoss的储存库远程仓库中能找到。

      现在,Maven的依赖库查询顺序更改为:
      在 Maven 本地资源库中搜索,如果没有找到,进入下一步,否则退出。
      在 Maven 中央存储库搜索,如果没有找到,进入下一步,否则退出。
      在Maven的远程存储库搜索,如果没有找到,提示错误信息,否则退出。

    五、常见错误

      错误原因①:
        pom.xml报错:web.xml is missing and <failOnMissingWebXml> is set to true
      解决办法:出现这个错误的原因是Maven不支持缺少web.xml的web项目,添加Web模块,对项目右键->Java EE Tools->Generate Deployment Descriptor Stub,这样就在srcmainwebapp下面生成了WEB-INF文件夹和web.xml,问题解决.
      错误原因②
        'parent.relativePath' and 'parent.relativePath' points at wrong local POM @ line 4, column 10
      解决办法:在应用parent工程中加上<relativePath>../stu-parent/pom.xml</relativePath>

    <parent>
            <groupId>com.stu</groupId>
            <artifactId>stu-parent</artifactId>
            <version>0.0.1-SNAPSHOT</version>
            <relativePath>../stu-parent/pom.xml</relativePath>
        </parent>

      错误原因③
        No compiler is provided in this environment. Perhaps you are running on a JRE rather than a JDK?
      解决办法:更换为自己本地的jdk即可。

  • 相关阅读:
    实现两个窗口通信方法-postMessage
    Java中的参数传值方式
    数据库连接池(connection pool)
    批量处理JDBC语句提高处理速度
    数据库事务,隔离级别
    BeanUtils介绍及使用
    JDBC获得数据库连接及使用
    jquery radio 行选中 操作
    EXTJS4.0 grid 可编辑模式 配置
    sql server 中使用 LIKE 语句 SqlParameter 使用
  • 原文地址:https://www.cnblogs.com/woniusky/p/10688759.html
Copyright © 2020-2023  润新知