Maven入门
1.Maven介绍
- Maven是项目管理工具,对软件项目提供构建与依赖管理。
- Maven是Apache下的Java开源项目。
- Maven为Java项目提供了统一的管理方式,已成为业界标准。
2.Maven核心特征
- 项目设置遵循统一的规则,保证不同开发环境的兼容性
- 强大的依赖管理,项目依赖组件自动下载、自动更新
- 可扩展的插件机制,使用简单,功能丰富
3.Maven的安装与配置
前提:要预先安装jdk,配置java运行环境
3.1.下载Maven
官网下载地址
windows下载这个apache-maven-x.x.x-bin.zip
3.2.配置Maven
将下载的Maven的zip文件解压到自己指定的目录。
然后在系统变量中新建一个
变量名:MAVEN_HOME
变量名:D:\Program Files\Maven\apache-maven-3.6.3 (具体的值根据你解压的目录为准)
在系统变量的Path变量中新增路径
变量名:%MAVEN_HOME%\bin (固定写法)
3.3.验证安装是否成功
运行cmd
输入:mvn -v
如果返回Maven版本号等信息则配置成功。(我自己之前装的是3.6.2)
4.Maven的坐标
- GroupId:机构或者团体的英文,采用"逆向域名"形式书写
- ArtifactId:项目名称,说明其用途,例如:cms、oa…
- Version:版本号,一般采用"版本+单词"形式,例如:1.0.0.RELEASE
5.Maven项目标准结构
目录 | 用途 |
---|---|
${basedir} | 根目录,用于保存pom.xml |
${basedir}/src/main/java | Java源代码目录 |
${basedir}/src/main/resources | 资源目录,保存配置文件、静态图片等 |
${basedir}/src/test/java | 测试类的源代码 |
${basedir}/src/test/resources | 测试时需要使用的资源文件 |
${basedir}/target | 项目输出的目录,用于存储jar、war文件 |
${basedir}/target/classes | 字节码(.class)的编译输出目录 |
${basedir}/pom.xml | 项目(Project)对象(Object)模型(Model)文件 |
6.Maven依赖管理
- Maven利用ependependdency>ency(依赖)自动下载、管理第三方Jar
- 在pom.xml文件中配置项目依赖的第三方组件
- maven自动将依赖从远程仓库下载至本地仓库,并在工程中引用
一个标准的依赖配置,以jdbc为例子
<!--依赖根目录,内可添加多个依赖-->
<dependencies>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.48</version>
</dependency>
</dependencies>
依赖导入查到网站:
mvnrepository.com
search.maven.org
6.Maven本地仓库与中央仓库
6.1.配置中央仓库私服
方法一:编辑项目pom.xml文件(只对该项目生效)
文件内增加以下配置(阿里云仓库)
<repositories>
<repository>
<id>aliyun</id>
<name>aliyun</name>
<url>https://maven.aliyun.com/repository/public</url>
</repository>
</repositories>
方法二:编辑本地maven的setting.xml文件(对所有使用该maven的项目生效
编辑Maven解压目录中 apache-maven-x.x.x\conf\settings.xml 的文件
在<mirrors></mirrors>标签中增加以下配置(阿里云仓库)
<mirror>
<id>aliyun</id>
<mirrorOf>central</mirrorOf>
<name>aliyun</name>
<url>https://maven.aliyun.com/repository/public</url>
</mirror>
6.2.配置本地仓库地址
编辑Maven解压目录中 apache-maven-x.x.x\conf\settings.xml 的文件
在文件中增加以下配置
<localRepository><!--你将要设置的文件目录--></localRepository>
7.项目打包
- Maven可将Java项目打包为jar、war包
- Maven项目打包是通过Plugins(插件)技术实现
- Maven输出Jar包插件:maven-assembly-plugin
7.1.Jar文件打包
在pom.xml中添加以下内容
<build>
<!--配置插件-->
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-assembly-plugin</artifactId>
<version>2.5.5</version>
<configuration>
<archive>
<manifest>
<!--配置入口类-->
<mainClass>xxx.xxx.xxx<!--自己修改--></mainClass>
</manifest>
</archive>
<descriptorRefs>
<!--all in one,在打包时会将所有引用的jar合并到输出的jar文件中-->
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
</configuration>
</plugin>
</plugins>
</build>
如果是idea,选择右侧的
双击进行打包
在下方日志里出现Finished at:XXXXXX表示已经完成然后我们在项目的target目录中出现打包完成的文件
第一个jar:中只有自己写的代码的字节码文件没有加载依赖
第二个jar:包括自己写的字节码文件和依赖
7.2.War文件打包
在pom.xml中添加以下内容
<build>
<!--设置打包后的文件名-->
<finalName>MavenWeb</finalName>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>3.2.3</version>
</plugin>
</plugins>
</build>
和设置打包输出文件格式
<packaging>war</packaging>
8.Maven常用命令
需要将Maven添加到运行环境变量中
命令 | 用途 |
---|---|
mvn archetype:generate | 创建Maven工程结构 |
mvn compile | 编译源代码 |
mvn test | 执行测试用例 |
mvn clean | 清除产生的项目 |
mvn package | 项目打包 |
mvn install | 安装至本地仓库 |