Welcome everyone

maven 基本介绍

java 汪明鑫 782浏览 0评论

认识maven

记得还没有用maven痛苦的时候吗?

全世界各种找jar包,各种报错,版本冲突等等。。。

 

有了maven,很多问题迎刃而解,有了Spring Boot,更舒服了,很多依赖都整在一个starter了

Spring Boot和maven简直是Java开发的春天,约定大于配置的理念!

 

Maven是一个跨平台的项目管理工具,它是使用java开发的,它要依赖于jdk1.6及以上
我之前简单整理了其他的内容:比如配置maven仓库,super pom,maven多模块项目搭建,比较简单,可以自行前往查看

两大核心功能

  • 管理依赖
  • 项目构建

 

构建

编译、运行单元测试、生成文档、打包部署的流程称为构建

构建工具的存在就是为了让这些工作自动化

 

其他构建工具

Make,Ant,Gradle

Maven、Ant能做的,Gradle都能做,但是Gradle能做的,Maven、Ant不一定能做

 

记得之前zookeeper源码就是用Ant构建的

 

maven规定的代码结构

src/main/java:开发目录

src/test/java:测试目录

 

严格遵守

在Maven出现之前,Java 项目的目录结构都没有一个统一的标准,配置文件到处都是,单元测试代码到底应该放在哪里,没有一个权威的规范。

 

maven项目目录一览:

 

POM

Maven是基于POM(工程对象模型)

pom是Maven 项目中的基本单元,它是一个 xml 文件,被放在工程根目录下

 

pom文件一般结构:

<project xmlns="http://maven.apache.org/POM/4.0.0"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
                      http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>

  <!-- The Basics -->
  <groupId>...</groupId>
  <artifactId>...</artifactId>
  <version>...</version>
  <packaging>...</packaging>
  <dependencies>...</dependencies>
  <parent>...</parent>
  <dependencyManagement>...</dependencyManagement>
  <modules>...</modules>
  <properties>...</properties>

  <!-- Build Settings -->
  <build>...</build>
  <reporting>...</reporting>

  <!-- More Project Information -->
  <name>...</name>
  <description>...</description>
  <url>...</url>
  <inceptionYear>...</inceptionYear>
  <licenses>...</licenses>
  <organization>...</organization>
  <developers>...</developers>
  <contributors>...</contributors>

  <!-- Environment Settings -->
  <issueManagement>...</issueManagement>
  <ciManagement>...</ciManagement>
  <mailingLists>...</mailingLists>
  <scm>...</scm>
  <prerequisites>...</prerequisites>
  <repositories>...</repositories>
  <pluginRepositories>...</pluginRepositories>
  <distributionManagement>...</distributionManagement>
  <profiles>...</profiles>
</project>

 

pom实例:

<?xml version ="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
   xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
   http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>pers.wmx</groupId>
    <artifactId>hello-world</artifactId>
    <version>1.0.0-SNAPSHOT</version>
    <packaging>jar</packaging>

    <name>Hello_World</name>
    <description>My First Maven Project</description>
<project>

 

 

现在的IDE都完美的集成了maven,我们只用创建maven project,

就会帮我们自动生成项目的目录和基本的pom.xml,我们自行引入依赖即可

 

 

maven仓库

对于Maven来说,仓库只分为两类:本地仓库和远程仓库。

当Maven根据坐标寻找构件的时候,它首先会查看本地仓库,如果 本地仓库存在此构件,则直接使用;如果本地仓库不存在此构件,Maven就会去远程仓库查找,发现需要的构件,下载到本地仓库再使用。如果本地仓库和远程仓库都没有,Maven就会报错。

 

maven还有私服的概念,怎么搭建没有尝试过,不过每个公司一般都会有自己的私服

 

 

 

 

如果有时间,会尝试搭建一个maven私服,哈哈,不过感觉没什么必要

 

 

本周会继续整理3篇maven的基础文章:maven依赖(dependency、dependencyManagement、依赖传递、依赖仲裁),maven生命周期(老大难),maven插件(基础概念和简单实践)

转载请注明:汪明鑫的个人博客 » maven 基本介绍

喜欢 (0)

说点什么

您将是第一位评论人!

提醒
avatar
wpDiscuz