maven入门学习

Maven是一个基于Ant的自动化构建和项目管理工具,使用pom.xml配置文件。它简化了jar和war包的构建,以及项目的模块化。Maven利用中央仓库和本地仓库管理依赖,并遵循一定的依赖解决规则。IDEA默认支持Maven集成,允许设置不同jdk和管理项目类型。此外,Maven支持各种插件,如用于配置编译版本、打包和部署的插件,以及Tomcat插件用于web项目的部署和运行。
摘要由CSDN通过智能技术生成

简介

maven是基于ant升级的,apache的自动化构建工具、项目管理工具

Maven – Welcome to Apache Maven

maven使用pom.xml进行配置

maven项目可以更方便的实现导jar包、拆分项目

idea默认集成了maven

下载安装

 下载maven,在官网(Maven – Welcome to Apache Maven

 binary可以直接使用,source是带源码的

解压后,bin目录下方的是执行文件/命令

idea中可以直接集成maven(不用敲命令了)

本地仓库、远程仓库 

远程仓库

默认的远程仓库是apache提供的中央仓库https://mvnrepository.com/

本地仓库路径配置

 镜像仓库配置

仓库优先级:

本地 > 配置文件中指定的仓库 > 镜像仓库 > 中央仓库 

 

指定编译运行的jdk

当idea中有多个jdk的时候,需要指定编译运行的jdk

 

maven项目类型

用maven构建项目,会有三种类型

pom

pom工程是逻辑工程,用在父级工程或者聚合工程中,用来做jar包的版本控制

<packaging>pom</packaging>

jar

打成jar包 java project

war

打成war包,发布在服务器上

项目坐标

GroupId:类似包名,防止重名,一般填写的是域名反转(eg:com.company)

ArtifactId:一般使用项目名

Version:版本,SNAPSHOT一般是非正式版本,上线后会去掉

 maven项目标准目录结构

通过dependencies添加依赖

 

maven项目关系依赖具有传递性

项目1依赖项目2,项目2依赖项目3,那么项目1中可以世界使用项目3

原则

最短路径有限原则

A->B->C->D(2.0)

A->E->D(1.0)

那么D(1.0)会被使用,因为A通过E到D的路径更短

最先声明原则

依赖路径长度一样时,

A->B->D(2.0)

A->E->D(1.0)

A中先声明哪个,哪个版本最先使用

A中先声明B,那么使用D(2.0)

A中先声明E,那么使用D(1.0)


 

依赖范围scope

默认是编译和执行都有效compile

<scope>compile</scope>

provided

项目打包后不使用该依赖

编译运行时使用该依赖,然后项目打包后,依赖可能跟容器中的依赖冲突,此时用provided,直接使用容器的依赖(eg:servlet-api)

runtime

编译时不需要生效,运行时生效(eg:jdbc)

system

与provided类似,不过需要指定一个本地系统路径的jar

<dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
            <scope>system</scope>
            <systemPath>D:/mavenResp</systemPath>
        </dependency>

test

编译测试、运行测试是需要,生成正式运行时不需要(eg:Junit)

import

值适用于pom文件中的dependencyManagement部分,表明子项目必须要使用dependencyManagement部分的依赖版本

 排除依赖,不需要写version

        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
            <exclusions>
                <exclusion>
                    <groupId>org.springframework.cloud</groupId>
                    <artifactId>spring-cloud-starter-netflix-ribbon</artifactId>
                </exclusion>
            </exclusions>
        </dependency>

父子工程

在子工程中添加

    <parent>
        <groupId>xxx</groupId>
        <artifactId>xxx</artifactId>
        <version>xxx</version>
        <relativePath>./pom.xml</relativePath>
    </parent>

maven插件

配置maven的编译插件

将jdk的版本改为1.7

 

配置文件插件

默认情况下,只有resources目录下的配置文件会被打包

如果想要把其他目录下的配置文件也打包

 tomcat插件

创建web(war)项目

配置Tomcat插件

 

 使用tomcat插件发布部署并执行war工程的时候,需要使用启动命令:tomcat7:run

这样就可以启动项目了 

maven命令

install

编译、打包,安装到本地仓库,也会有target目录

compile

只编译,相当于javac

package

编译、打包(不会把打包后的jar放到本地仓库中)

clean

清除

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值