zoukankan      html  css  js  c++  java
  • 【Java架构:基础技术】一篇文章搞掂:Maven

    本文篇幅较长,建议合理利用右上角目录进行查看(如果没有目录请刷新)。

    本文基于《Maven 实战》一书进行总结和扩展,大家也可以自行研读此书。

    一、Maven简介

    1.1、什么是Maven

    Maven是Apache的一个开源工具,用于项目构建、依赖管理和项目信息管理:

    使用Maven前的做法:

    • 项目构建:编译、运行单元测试、生成文档、打包、部署等工作
    • 依赖管理:我们使用第三方类库时,以依赖的方式引入到项目中;当依赖增多,会出现版本不一致、版本冲突等问题
    • 项目信息管理:项目信息(如描述、开发者列表、版本控制系统地址、许可证、缺陷管理系统地址等)散落在系统各个地方,只能手工查找

    Maven的解决方案:

    • 项目构建:
      • 自动化构建过程,使用Maven命令即可自动完成项目构建
      • Maven是跨平台的,无论在什么平台都使用相同的命令
      • 标准化了项目构建流程
    • 依赖管理:
      • 提供一个中央仓库,帮助我们管理和自动下载构件(Java类库)
      • 通过一个pom文件可以统一配置项目的依赖关系
    • 项目信息管理:
      • Maven能把这些项目信息集中起来,并能进行分析统计

    1.2、为什么需要Maven

    原因:

    • IDE依赖大量手工操作,工作低效且容易出错;IDE配置不同时,可能导致同一个任务在不同IDE会运行失败。
    • 最早的构建工具Make,依赖于操作系统,语法问题多
    • 另一个工具Ant,过程式编程,指定一个目标,指定需要执行的任务,所以针对不同项目需要重新编写;没有依赖管理功能
    • Maven高效,减小很多重复配置,且支持项目构建、依赖管理和项目信息管理,更有一个中央仓库

    二、Maven的安装和配置

    2.1、Windows上安装Maven

    a、要先安装好JDK,并配置好JAVA_HOME环境变量(可查看JDK安装介绍的文章)

    进入cmd工具,输入检查命令:

    echo %JAVA_HOME%
    java -version

    b、下载maven

    访问官网http://maven.apache.org

    进入下载页面,点击镜像地址

    进入了资源列表

    点击进入以下路径,即可找到zip压缩文件包

    点击压缩包进行下载,并解压到一个文件夹

    c、配置MAVEN_HOME环境变量,值为安装目录

    d、配置Path环境变量%MAVEN_HOME%in

    e、检查安装情况

    进入cmd工具,输入检查命令:

    echo %MAVEN_HOME%
    mvn -v

    d、升级Maven

    下载解压,然后修改MAVEN_HOME环境变量地址即可

    2.2、基于UNIX的系统上安装Maven

    暂略,待补充

    2.3、Maven安装目录文件分析

    暂略,待补充

    2.4、设置HTTP代理

    暂略,待补充

    2.5、安装m2eclipse

    暂略,待补充

    2.6、安装NetBeans Maven插件

    暂略,待补充

    2.7、Maven安装最佳实践

    2.7.1、配置Maven仓库下载的路径,以及配置从阿里云仓库中下载构件

    Maven默认从外国的仓库下载包,速度很慢;可以通过配置,使Maven从阿里云仓库中下载包

    新建一个文件夹,用于存放从仓库下载的包

    修改Maven配置文件中,本次仓库地址和网络仓库地址

    <mirror>
      <id>mirrorId</id>
      <mirrorOf>repositoryId</mirrorOf>
      <name>Human Readable Name for this Mirror.</name>
      <url>http://my.repository.com/repo/path</url>
    </mirror>
    <mirror>
      <id>mirrorId</id>
      <mirrorOf>repositoryId</mirrorOf>
      <name>Human Readable Name for this Mirror.</name>
      <url>https://repo1.maven.org/maven2/</url>
    </mirror>
    <mirror>
        <id>alimaven</id>
        <name>aliyun maven</name>
        <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
        <mirrorOf>central</mirrorOf>
    </mirror>
    <mirror>
        <id>cloudera</id>
        <name>cloudera maven</name>
        <url>https://repository.cloudera.com/artifactory/cloudera-repos/</url>
        <mirrorOf>central</mirrorOf>
    </mirror>

    暂略,待补充

     三、Maven使用入门

    实践

    1、Spring Boot、Mybatis项目中使用Maven打包成jar包后,访问报错

    项目使用Spring Boot、Mybatis、Maven构建

    在IDE中运行正常,但是打包成jar包后,访问rest api的时候报错:Invalid bound statement (not found)

    查阅了百度,有的说是没有把xml资源打包进去

    我项目中的src/main/resources目录下的application.properties文件,有如下设置

    mybatis.type-aliases-package=com.Solution.ShopApp.Model
    mybatis.config-location=classpath:mybatis/mybatis-config.xml
    mybatis.mapper-locations=classpath:mybatis/Mapper/*.xml

    百度说增加pom文件下的配置,例如

    <resources>
        <resource>
            <directory>src/main/java</directory>
            <includes>
                <include>**/*.properties</include>
                <include>**/*.xml</include>
            </includes>
            <filtering>false</filtering>
        </resource>
        <resource>
            <directory>src/main/resources</directory>
            <includes>
                <include>**/*.properties</include>
                <include>**/*.xml</include>
                <include>mybatis/Mapper/**/*.xml</include>
                <include>mybatis/Mapper/*.xml</include>
            </includes>
            <filtering>false</filtering>
        </resource>
    </resources>

    加上后并没有效果,仔细对比后,发现是

    mybatis.mapper-locations=classpath:mybatis/Mapper/*.xml

    这个设置中,本来文件夹Mapper名称是小写的,配置中写成大写了,改成对应的即可

    2、【Maven】加载其它人的源码,提示POM文件中某些依赖有误由错误信息(was cached in the local repository, resolution will not be reattempted until the update interval of nexus has elapsed or updates are forced)

    解决方法:删除本地仓库对应版本的目录,重新Maven Update一下项目即可

  • 相关阅读:
    java 事务
    JPA概述以及它和Hibernate之间的关系
    [转]JavaWeb之 Servlet执行过程 与 生命周期
    j2EE的web.xml详解
    安装PyTorch 0.4.0
    [转]springmvc常用注解标签详解
    hibernate的dialect大全
    Hibernate快速入门
    DBUtils使用详解
    用户密码初始化
  • 原文地址:https://www.cnblogs.com/LiveYourLife/p/9293706.html
Copyright © 2011-2022 走看看