Maven

Posted tangshuo

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Maven相关的知识,希望对你有一定的参考价值。

Maven

[仓库地址](https://mvnrepository.com/

软件项目管理综合工具,基于项目对象模型的概念,maven可以根据一个中心信息来管理项目的构建,文档和报告的生成;

Maven相关概念

POM(项目对象模型)

  • Maven整体采用的就是POM,既将项目看做一个对象,我们可以对这个项目对象进行相关属性的设置,从而来完成项目的管理
  • 一个POM可继承其他POM从而使用其中已经定义好的内容;
  • 可将一个Maven项目拆分为多个不同Maven模块,只需要在POM中列出包含的模块信息即可;

repository(仓库)

所有Maven项目都具备自己的坐标,包括组织ID,坐标ID和版本号,有了坐标后,可将项目放入仓库中,以供其他人使用,仓库就是用来存放这些项目的地方,分为本地仓库,和远程仓库,以及中央仓库

中央仓库也属于远程仓库,是有maven官方维护的仓库,是最完整的jar仓库,为了区别于其他仓库,所以称之为中央仓库

Dependency Management(依赖管理)

依赖指得是项目运行所必须的组件(可以是jar,java,class),依赖管理是Maven提供的最核心的功能之一,可根据提供的项目坐标,自动的从仓库中下载需要的依赖,并且会帮助我们解决依赖冲突问题,

Project Lifecycle(项目生命周期)

项目生命周期指得是项目从创建工程开始到最终部署到服务器的所有动作(程序员要干的事情)的总称,如编译,测试,打包,部署,生成项目站点等....

Maven对这些动作进行了抽象,变成了一个个生命周期

三个生命周期

  • 默认 : 处理从验证开始执行所有阶段一直到部署
  • 清理 : 处理项目的清理操作
  • 站点 : 处理项目站点的创建和部署

阶段

每个生命周期包含若干阶段

技术图片

Maven 常见错误

不支持发行版本5

这是由于Maven默认编译版本为1.5,目前已经不受支持

当前项目生效

我们需要在pom添加以下内容,用于指定编译版本和编码方式

<properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <maven.compiler.source>1.8</maven.compiler.source>
    <maven.compiler.target>1.8</maven.compiler.target>
</properties>

配置idea的编译
技术图片

全部生效

以上方式只针对当前项目有效,当重新创建项目时又需要重新写一次,针对该问题,可以通过在settings.xml添加通用配置来解决:

根据idea中的配置信息找到settings.xml文件,在profiles标签中添加以下内容:

 <profile>  
           <id>jdk-1.8</id>  
           <activation>  <!-- 配置激活条件 -->
               <activeByDefault>true</activeByDefault>  <!-- 是否是默认配置 -->
               <jdk>[1.8,)</jdk>  <!-- 当jdk版本 <=1.8时配置生效 -->
            </activation>  
            <properties>  
              <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
              <maven.compiler.source>1.8</maven.compiler.source>
              <maven.compiler.target>1.8</maven.compiler.target>
            </properties>  
 </profile> 

web项目

技术图片

目录结构
技术图片

打包方式 war

web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
         version="4.0">
</web-app>

插件

待补充

以上是关于Maven的主要内容,如果未能解决你的问题,请参考以下文章

Spring+SpringMVC+MyBatis+Maven框架整合

关于mysql驱动版本报错解决,Cause: com.mysql.jdbc.exceptions.jdbc4Unknown system variable ‘query_cache_size(代码片段

如何在 Apache Felix maven-bundle-plugin 中设置 Provide-Capability 标头?

Maven FTP部署:无法创建目录

如何从詹金斯访问maven属性?

向小军 “小黑” 正式加入 Maven Skateboards