Maven入门

maven

maven本质是一个项目管理工具,将项目开发和管理过程抽象成一个项目对象模型(pom)

pom(project object model):项目对象模型

官网:maven.apache.org

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-8nq4TyxL-1656561227571)(F:\file\MarkText\text\截图放置\image-20220628201346631.png)]
有多个插件

Maven环境变量配置

依赖java,需要配置JAVA_HOME
设置MAVEN自身的运行环境,需要配置MAVEN_HOME

在这里插入图片描述

配置path

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Y7QCODMe-1656561227572)(F:\file\MarkText\text\截图放置\image-20220628202715561.png)]

仓库

用于存储资源,包含各种jar包

分类:

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

理论上本地仓库从中央仓库下载jar包,实际上本地从私服取,私服从中央仓库拿

在这里插入图片描述

坐标

在这里插入图片描述

必记: mvnrepository.com(导包)

配置本地仓库

修改jar包安装位置

maven安装位置 打开conf\setting.xml

改D:\maven\repository

文件内容原本被注释掉了,执行默认位置下载到了C盘里面

在这里插入图片描述

远程仓库

阿里云镜像仓库

同上位置

里面

在这里插入图片描述

<mirror>
<!-- 此镜像唯一标识符,用来区分不同的mirror元素 -->
<id>nexus-aliyun</id>
<!-- 对哪种仓库进行镜像,就是说准备代替哪个仓库 -->
<mirrorOf>central</mirrorOf>
<!-- 镜像名称 -->
<name>Nexus aliyun</name>
<!-- 镜像URL -->
<url>http://maven.aliyun.com/nexus/content/groups/public</url>
</mirror>

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/xsd/maven-4.0.0.xsd">
<!--pom的版本-->
<modelVersion>4.0.0</modelVersion>
<!-- 自己项目的信息 -->
    <groupId>com.itheima</groupId>
    <artifactId>project-java</artifactId>
    <version>1.0</version>
    <packaging>jar</packaging>

  <dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>4.13.2</version>
      <scope>test</scope>
    </dependency>
  </dependencies>
</project>

dependency里面是项目需要的jar包

下载 cmd->mvn compile
mvn compile 编译
清理插件 mvn clean
测试 mvn test
mvn install把包放到仓库
打包 mvn package

mvn compile

到当前项目的目录下 打开cmd->mvn compile

出现错误

在这里插入图片描述

问题原因:
这是因为没有配置jdk版本号
解决办法一:

在pom.xml中添加

<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>
解决办法二:

修改maven配置

在setting中指定jdk版本

<profiles>
    <profile>
        <id>JDK-1.8</id>
        <activation>
            <activeByDefault>true</activeByDefault>
            <jdk>1.8</jdk>
        </activation>
        <properties>
            <maven.compiler.source>1.8</maven.compiler.source>
            <maven.compiler.target>1.8</maven.compiler.target>
            <maven.compiler.compilerVersion>1.8</maven.compiler.compilerVersion>
        </properties>
    </profile>
</profiles>
重新输入mvn compile

在这里插入图片描述

问题解决

mvn test

在这里插入图片描述

运行 失败 错误 跳过 用时

上面的Running xxx 每一条都显示运行失败错误等信息

下面的Results显示的是所有项目的测试数据总数

mvn package

打包只打包源码

mvn install

group id 决定了把包放在哪里

第一个Maven项目(手工制作)

创建工程
mvn archetype:generate
-DgroupId={project-packaging}
-DartifactId={project-name}
-DarchetypeArtifactId=maven-archetype-quickstart
-DinteractiveMode=false
创建java工程
mvn archetype:generate -DgroupId=com.itheima -DartifactId=java-project -
DarchetypeArtifactId=maven-archetype-quickstart -Dversion=0.0.1-snapshot -
DinteractiveMode=false
创建web工程
mvn archetype:generate -DgroupId=com.itheima -DartifactId=web-project -
DarchetypeArtifactId=maven-archetype-webapp -Dversion=0.0.1-snapshot -
DinteractiveMode=false

在这里插入图片描述

第一个Maven项目(IDEA生成)

配置Maven

idea对3.6.2及以上版本存在兼容性问题,为避免冲突,idea中安装使用3.6.1版本

更换低版本maven把高版本maven的conf->settings.xml转移到低版本中去替换掉

1、先建空项目

在这里插入图片描述

2、修改配置

在这里插入图片描述

3、点击Settings
搜索 Maven

在这里插入图片描述

改成自己下载的maven文件位置

在这里插入图片描述

修改mvn配置 点击override表示覆盖 然后选择文件夹对应位置的配置文件

3、准备模块部分

在这里插入图片描述

在这里插入图片描述

右击文件也可以改文件属性

在这里插入图片描述

建成后的maven工程

在这里插入图片描述

测试代码

Demo.java

package com.itheima;

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

DemoTest.java

package com.itheima;

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

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

在这里插入图片描述
功能在这里启动

在这里插入图片描述

Web工程打包成war java工程打包成jar

<packaging>war</packaging>

Maven项目需要配置Tomcat服务器

pom书写的大概格式

<!-- 设置当前项目所以来的所有jar-->
<dependencies>
<!— 设置具体的依赖 -->
<dependency>
<!— 依赖所属群组id-->
<groupId>junit</groupId>
<!— 依赖所属项目id-->
<artifactId>junit</artifactId>
<!— 依赖版本号 -->
<version>4.12</version>
</dependency>
</dependencies>

依赖传递

在pom.xml中可以添加其他项目的pom.xml

这样可以实现依赖的传递

<dependency>
    <groupId>com.itheima</groupId>
    <artifactId>project03</artifactId>
    <version>1.0-SNAPSHOR</version>
</dependency>

在这里插入图片描述

直接依赖:在当前项目中通过依赖配置建立的依赖关系
间接依赖:被资源的资源如果依赖其他资源,当前项目间接 依赖其他资源
依赖冲突问题

在这里插入图片描述

如果不想共享的话

被共享文件加上

<optional>true</optional>(可选依赖)

加在pom文件中

排除依赖

主动断开共享依赖的部分东西

有点像你收钱但是不收破损钱

把要排除的写在exclusions下的exclusion中

<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<exclusions>
<exclusion>
<groupId>org.hamcrest</groupId>
<artifactId>hamcrest-core</artifactId>
</exclusion>
</exclusions>
</dependency>

依赖范围

依赖的jar默认情况可以在任何地方使用,可以通过scop标签设定其作用范围

作用范围:

  • 主程序范围有效(main文件夹范围内)
  • 测试程序范围有效(test文件夹范围内)
  • 是否参与打包(package指令范围内)

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

生命周期

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

plugins 表示插件

生命周期可以理解为几岁

插件就是几岁要干的事情

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值