项目构建工具:Maven(上)

Maven

简介

maven是一款服务于基于java平台的项目构建、依赖管理工具。

依赖仓库地址

https://mvnrepository.com/tags/maven

maven的四大特性

依赖管理系统

Maven引入了依赖管理系统jar包管理 jar升级时修改配置文件即可。
依赖的三大属性:groupld、artifactld、version 这三大属性组成了 Coordination (坐标) 唯一标识一个依赖。
任何基于Maven构建的项目自身也必须定义这三项属性,生成的可以是j ar 包,也可以是 war 包,一个典型的依赖引用如下:

    <dependency>
      <groupId>javax.servlet</groupId>
      <artifactId>javax.servlet-api</artifactId>
      <version>3.1.0</version>
    </dependency>

groupld:表明Meven项目隶属实际项目-公司名称

artifactId:该元素定义实际项目中的一个 Maven模块-项目名

version:该元素定义Maven项目的版本

坐标属性
maven坐标为各种组件引入了秩序,任何一个组件都必须定义自己的坐标。

Maven的特点

  1. 一致的项目结构:解决了不同ide带来的文件目录不一致的问题(例如Idea的maven项目导入eclipce里同样可以,因为项目结构统一)。
  2. 一致的构建模型以及插件机制:引入插件(如:需要Tomcat,那么就把Tomcat的插件引入就可以了)

Maven的理念:约定大于配置!

Maven的安装配置

下载maven

地址就不贴了,直接去官网下载吧。

配置环境变量
项目构建工具:Maven(上)

解压后把Maven的根目录配置到系统环境变量中MAVEN_HOME,将bin目录配置到path环境变量中。

path中的环境变量:
项目构建工具:Maven(上)

注意:maven解压后存放的目录不要包含中文和空格

检查Maven环境:dos窗口输入 mvn -v
项目构建工具:Maven(上)
修改配置文件修改镜像

  1. 在maven目录下创建maven-repo文件夹,用作maven本地仓库,存放maven下载下来的jar包
F:\apache-maven-3.6.1\maven-repo
  1. 打开maven路径下的配置文件:maven目录/conf/settings.xml
  2. 添加本地仓库位置配置:如下
路径是刚刚创建的那个本仓库路径
<localRepository>F:\apache-maven-3.6.1\maven-repo</localRepository>
  1. 在 mirrors 标签中更换镜像为阿里的镜像,加快依赖下载,因为maven默认使用的是国外的*仓库,很慢:
    <mirror>
        <id>aliyunmaven</id>
        <mirrorOf>*</mirrorOf>
        <name>Nexus aliyun</name>
        <url>https://maven.aliyun.com/repository/public</url>
    </mirror>

pom.xml 标签解释

modelversion:指定了当前pom模型的版本,对于Maven2和Maven3来说,它只能是4.0.0

groupId:顾名思义,就是定义了项目属于哪个组,这个组往往和项目所在的组织和公司存在关联,例如com.xxxx

artifactId:定义了当前Maven项目在组中的唯一Id

version:x.x.x - 里程碑
例如:1.0.0-SNAPSHOT
第一个x :大版本 有重大变革
第二个x:小版本 修复bug,增加功能
第三个x:更新

里程碑版本:
SNAPSHOT(开发版)
alpha(内部测试)
beta (公开测试)
Release | Rc (发布版)
GA(正常版本)

常用命令

  • mvn -version:显示版本信息
  • mvn clean:清理项目产生的临时文件,一般是模块下的target目录
  • mvn compile:编译源代码,一般编译模块下的sec/main/java目录
  • mvn package:项目打包工具,会在模块下的target目录下生成jar或war文件
  • mvn test:测试命令,或执行src/test/java/下的junit测试用例
  • mvn install:将打包的jar/war文件复制到你的本地仓库中,供其他模块使用
  • mvn site:生成项目相关信息的网站
  • mvn eclipse:eclipse:将项目转化为Eclipse项目
  • mvn dependency:tree:打印出项目的整个依赖树

IDEA集成Maven环境

设置Maven版本

项目构建工具:Maven(上)
Maven 的 Web 项目的创建

  1. 创建maven的webapp项目
    项目构建工具:Maven(上)
  2. 项目gav:
    项目构建工具:Maven(上)
  3. 初始项目结构如图
    项目构建工具:Maven(上)
  4. 修改pom.xml配置文件
  • 修改jdk版本:默认为1.7,修改为1.8 如下:
  <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>
  • junit如果不需要可以删除
  • 删除pluginManagement标签及标签内的所有内容
  1. Maven集成Tomcat
    第一步:
    <plugins>
   			集成Tomcat9插件
          <plugin>
            <groupId>org.apache.tomcat.maven</groupId>
            <artifactId>tomcat7-maven-plugin</artifactId>
            <version>2.2</version>
            <configuration>
              <!--访问端口-->
              <port>8080</port>
              <!--对外访问路径-->
              <path>/mavenDemo</path>
              <uriEncoding>UTF-8</uriEncoding>
              <server>tomcat7</server>
            </configuration>
          </plugin>
          
    </plugins>

第二步:
1.
项目构建工具:Maven(上)
2.
项目构建工具:Maven(上)

Maven仓库概念

Maven仓库分为两类:本地仓库和远程仓库

当Maven根据坐标寻找构件的时候,会首先查看本地仓库,有就直接使用,如果本地仓库没有,则会从远程仓库查找下载到本地仓库,如果本地仓库和远程仓库都没有的话,Maven就会报错。

远程仓库分为三种:*仓库、私服、其他公共库。

默认配置下,Maven使用*仓库下载jar包。

私服是另外一种特殊的远程仓库,是为了节省带宽和时间,在局域网内架设一个私有的仓库服务器,用这个仓库代理所有外部远程仓库。内部的项目还能上传到私服上供其他项目使用

如果没有自己配置本地仓库文件夹时,默认本地仓库在路径为:${User}/.m2/repository/。建议修改配置为自己创建的本地仓库文件夹。配置方式前面已经有说了。

上一篇:【C#】#102 发送邮件


下一篇:Maven依赖管理更新