赞
踩
目录
官网(Maven – Welcome to Apache Maven),选择对应版本的bin.zip文件下载。
配置环境变量:
MAVEN_HOME:E:\apache-maven-3.9.3,path:%MAVEN_HOME%\bin
cmd输入mvn -v检查是否安装配置成功。
打开conf的settings.xml
在55行添加:
<localRepository>E:\apache-maven-3.9.3</localRepository>
本地仓库>私服(如果配置了的话)>公共仓库(如果配置了的话)>中央仓库
本地仓库是自己电脑中的仓库,即在settings.xml文件中配置的目录。 项目中使用过的依赖都会自动存储在本地仓库中,后续可以复用。
中央仓库
Maven中央仓库是由Maven社区提供的仓库,不用任何配置,Maven中内置了中央仓库的地址。其中包含了绝大多数流行的开源Java构件。 可以通过仓库搜索服务网址https://mvnrepository.com/搜索需要的依赖的相关信息。中央仓库地址:Central Repository:
公共仓库
中央仓库在国外,下载依赖速度过慢,所以都会配置一个国内的公共仓库替代中央仓库。
常用阿里云仓库(仓库服务 )
私服
通过Nexus来创建、管理一个私服,不对外开放。
阿里云仓库介绍:
name:仓库名
type:仓库类型
group:仓库组,可以包含多个仓库,客户端值需要连它就可以连到它所管理的所有仓库
proxy:代理仓库,去中央仓库或者镜像仓库啦jar包并且保存的。我们可以在这里配置成阿里云的镜像
hosted:本地仓库,自己公司的项目,或者上传一些其他公司的jar。
Format:仓库格式
Status:仓库状态
URL:客户端连接的url地址
health check:健康检查
仓库种类
配置阿里云仓库
在settings.xml的mirrors标签里添加:
- <!-- 配置阿里云镜像仓库 -->
- <mirror>
- <id>alimaven</id>
- <name>aliyun maven</name>
- <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
- <mirrorOf>central</mirrorOf>
- </mirror>
配置jdk8
在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>
配置jdk17
- <profile>
- <id>jdk-17</id>
- <activation>
- <activeByDefault>true</activeByDefault>
- <jdk>17</jdk>
- </activation>
- <properties>
- <maven.compiler.source>17</maven.compiler.source>
- <maven.compiler.target>17</maven.compiler.target>
- <maven.compiler.compilerVersion>17</maven.compiler.compilerVersion>
- </properties>
- </profile>
1.选择项目Generators:Maven Archetype,archetype里添加相应的web版本
2.搭建项目结构:
src/main/java:存放源代码,建包,放项目中的代码(service,dao,entity...)
src/main/resources:书写配置文件,项目中的配置文件(database.properties)
src/test/java:书写测试代码,项目中测试案例代码
src/test/resources:书写测试案例相关配置文件
目录/pom.xml(project object model)maven项目核心文件,其中定义项目构建方式,声明依赖等
3.项目关联:
4.配置pom.xml,根据项目类型,在pom.xml中做出对应配置,添加配置war/jar
5.添加jar包,在dependencies标签里添加,相关依赖可从https://mvnrepository.com/ 中查找
- <dependency>
- <groupId></groupId>
- <artifactId></artifactId>
- <version></version>
- <scope></scope>
- </dependency>
maven结构
-
- <?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>...</groupId>
- <artifactId>...</artifactId>
- <version>...</version>
- <packaging>...</packaging>
-
- <name>...</name>
- <description>...</description>
- <url>...</url>
-
- <dependencies>...</dependencies>
- <parent>...</parent>
- <dependencyManagement>...</dependencyManagement>
- <modules>...</modules>
- <properties>...</properties>
-
- <!--构建设置 -->
- <build>...</build>
- <reporting>...</reporting>
-
- <!-- 更多项目信息 -->
- <inceptionYear>...</inceptionYear>
- <licenses>...</licenses>
- <organization>...</organization>
- <developers>...</developers>
- <contributors>...</contributors>
-
- <!-- 环境设置-->
- <issueManagement>...</issueManagement>
- <ciManagement>...</ciManagement>
- <mailingLists>...</mailingLists>
- <scm>...</scm>
- <prerequisites>...</prerequisites>
- <repositories>...</repositories>
- <pluginRepositories>...</pluginRepositories>
- <distributionManagement>...</distributionManagement>
- <profiles>...</profiles>
- </project>
dependence标签
- <dependency>
- <groupId>groupB</groupId>
- <artifactId>artifactB</artifactId>
- <version>1.0</version>
- <optional>true</optional>
- <exclusions>
- <exclusion>
- <groupId>groupC</groupId>
- <artifactId>artifactC</artifactId>
- </exclusion>
- </exclusions>
- </dependency>
使用exclusion排除依赖:假设有这样一种依赖关系,A->B->C,这个时候由于某些原因,我们不需要对C的依赖,但是我们又必须要对B的依赖,这个时候该怎么办呢?针对这种情况,Maven给我们提供了一个exclusion功能,我们可以在添加A对B的依赖时申明不需要引进B对C的依赖。
在定义项目的依赖项的时候,我们可以通过scope来指定该依赖项的作用范围。scope的取值有compile、runtime、test、provided、system和import。
可选的依赖项表示可有可无,不一定需要的,它只是做一个标记。为了便于大家理解,我们先看这样一种情况,假设项目B依赖于项目C,这个时候我们把B对C的依赖利用optional标记为可选的,它意味着B中只有部分地方用到了C,并不是必须要的,当你依赖于B,但是又不需要使用到B的C功能时,可以不依赖于C。这样当A->B->C时,在建立项目A的时候将不会加入对C的依赖,因为C对B是可选的,我们不一定会用到C。但是在建立项目B的时候,Maven就会加入对C的依赖。也就是说这种标记为optional的依赖项对项目本身而言是没有什么影响的,它影响的是以该项目作为依赖项的其他项目,如这里的项目A。这种可选的依赖项有一个好处就是它会默认的作为exclusion项排除
properties标签
使用properties标签配置项目版本,可将项目的版本号配置为一个属性,以方便统一管理和修改版本号。
bulid表示对项目的一些编译配置
plugins 插件配置
parent继承父类模块:常和module配合创建聚合工程,子工程使用此标签标记父工程
modules标识子模块列表:常和parent配合创建聚合工程,父工程使用此标签标记子工程
dependencyManagement:父工程管理依赖的版本 不做实际引入
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。