JAVA maven

Maven基础

Maven的本质是一个项目管理工具,将项目开发和管理过程抽象成一个项目对象模型(POM)
POM(Project Object Model):项目对象模型。
项目对象模型(POM)需要加载pom.xml来确定项目,每一个pom.xml对应一个项目,依赖管理和项目对象模型是双向操纵的。依赖管理最终都是从中央仓库调用。
在这里插入图片描述
只有中间蓝色这一块是maven,蓝色内是不可以替换的,外部是可以替换的。
蓝色部分有一个蓝色虚线,虚线下方是插件,这个是maven写好的。

maven的作用
项目构建:提供标注的,跨平台的自动化项目构建方式。
依赖管理:方便快捷的管理项目依赖的资源(jar包),避免资源间的版本冲突问题。
统一开发结构:提供标注的,统一的项目结构。
maven:https://maven.apache.org/download.cgi
需要配置MAVEN_HOME环境变量 配置好之后测试
在这里插入图片描述

基础概念

仓库:用于存储资源,包含各种jar包
仓库分类:
本地仓库:自己电脑上存储资源的仓库,连接远程仓库获取资源
远程仓库:非本机电脑上的仓库,为本地仓库提供资源
中央仓库:maven团队维护,存储所有资源的仓库
私服:部门/公司范围内存储资源的仓库,从中央仓库获取资源
私服的作用:
保存具有版权的资源,包含购买或自主研发的jar
中央仓库中的jar都是开源的,不能存储具有版权的资源
一定范围内共享资源,仅对内部开放,不对外共享。

坐标

maven中的坐标用于描述仓库中资源的位置
https://repo1.maven.org/maven2/
maven坐标主要组成
groupId:定义当前Maven项目隶属组织名称(通常是域名反写,例如:org.mybatis)
artifactId:定义当前Maven项目名称(通常是模块名称,例如CRM,SMS)
version:定义当前项目版本号
maven坐标的作用
使用唯一标识,唯一性定位资源位置,通过该标识可以将资源的识别与下载工作交由机器完成。

仓库配置

进入maven安装目录conf文件夹下面,有一个settings.xml配置文件
在这里插入图片描述
默认存放位置在用户.home/.m2/repository
改为咱们自己创建的
在这里插入图片描述

  <localRepository>D:\maven\repository</localRepository>

远程仓库配置
在这里插入图片描述

<mirror>
   <!--配置具体的仓库的下载镜像 -->
    <mirror>
      <!-- 此镜像的唯一标识符,用来区分不同的mirror元素  -->
      <id>maven-default-http-blocker</id>
      <!-- 对哪种仓库进行镜像,简单说就是替代哪个仓库 -->
      <mirrorOf>external:http:*</mirrorOf>
      <!-- 镜像名称 -->
      <name>Pseudo repository to mirror external repositories initially using HTTP.</name>
      <!-- 镜像URL  ->
      <url>http://0.0.0.0/</url>
      <blocked>true</blocked>
    </mirror>
</mirror>

全局setting与用户setting区别
全局setting定义了当前计算机中Maven的公共配置
用户setting定义了当前用户的配置

第一个Maven项目

主程序

 package com.h0ne;

public class Demo{
           public String say(String name){
                      System.out.println("hello" + name);
                      return "hello"+name;
           }
}

测试代码

package com.h0ne

import org.junit.Test;
import org.junit.Assert;

public class DemoTest{
           @Test
           public void testSay(){
                     Demo d = new Demo();
                     String ret = d.say("maven");
                     Assert.assertEquals("hello maven",ret);
           }
}

pom.xml文件

<?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/maven-v4_0_0.xsd">

  <modelVersion>4.0.0</modelVersion>
  
  <groupId>com.h0ne</groupId>
  <artifactId>project-java</artifactId>
  <version>1.0</version>
  <packaging>jar</packaging>

  <dependencies>
      <dependency>
          <groupId>javax.el</groupId>
          <artifactId>el-api</artifactId>
          <optional>true</optional>
          <version>4.12</version>
      </dependency>
  </dependencies>
</project>

Maven项目构建命令
Maven构建命令使用mvn开头,后面添加功能参数,可以一次执行多个命令,使用空格分割

  mvn compile #编译
  mvn clean #清理
  mvn test #测试
  mvn package #打包
  mvn install #安装到本地仓库

mvn compile #编译 第一次会很慢 第二次就快很多了
在这里插入图片描述
在这里插入图片描述

mvn package出现了报错
在这里插入图片描述
mvn package -Dmaven.test.skip=true
用这个命令就好了
在这里插入图片描述
mvn install -Dmaven.test.skip=true 打包成功
在这里插入图片描述
插件创建工程
创建工程

  mvn archetype:generate
    -DgroupId={project-packaging}
    -DartifactId={project-name}
    -DarchetypeArtifactId=maven-archetype-quickstart
    -DinteractiveMode=false

创建java工程

mvn archetype:generate
    -DgroupId=com.h0ne
    -DartifactId=java-project
    -DarchetypeArtifactId=maven-archetype-quickstart
    -Dversion=0.0.1-snapshot 
    -DinteractiveMode=false

创建web工程

mvn archetype:generate
    -DgroupId=com.h0ne
    -DartifactId=web-project
    -DarchetypeArtifactId=maven-archetype-webapp
    -Dversion=0.0.1-snapshot
    -DinteractiveMode=false

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值