Maven笔记整理-基础
2017-11-24 本文已影响0人
舞动的代码
概述
-
Maven是什么
-
Maven是一个优秀的项目构建工具
-
Maven提供了契约式的开发
-
为什么使用Maven
-
它可以方便将整个项目划分不同模块,模块和模块之间是有一定联系,具有依赖、聚合...等特点
-
它为我们的jar文件提供一个统一的仓库,极大的方便我们对Jar依赖的引入
-
Maven的目录结构
- enter image description here
安装
- 因为maven本身就是开源,所以官方提供了免安装的压缩包
- 解压官方的压缩包
- Maven3.3.x要求JDK版本必须是1.7及以上版本
- 注意解压路径中不要出现中文
- 配置环境变量(不是必须的)
-
步骤略..
-
出现以下提示表示配置成功
- enter image description here
-
注意事项
JDK的环境变量必须是JAVA_HOM的形式配置
如果需要在任意目录下使用maven的话,那么需要配置maven的环境
- M2_HOME=D:\apache-maven-3.3.9
- PATH=%M2_HOME%\bin
仓库
Maven依赖的一个搜索平台
更改本地仓库的存储位置
- 默认情况下本地仓库的位置:C:\Users\Administrator.m2\repository
- 一般情况下不用该目录作为仓库目录,重装系统之后该目录不存在
- 修改步骤
- 找到setting.xml文件:在maven_home\conf\settings.xml
- 具体的更改项:
<!-- localRepository
| The path to the local repository maven will use to store artifacts.
|
| Default: ${user.home}/.m2/repository
<localRepository>/path/to/local/repo</localRepository>
-->
<localRepository>D:\\Maven-Repository</localRepository>
- 将更改后的setting.xml文件复制一份到默认的仓库目录中,该步骤不是必须的!有的工具默认读取的位置:** C:\Users\Administrator.m2\settings.xml **
- 更改仓库源(其实就是其他大公司搭建的私有服务器,私服搭建笔记参考下面)
<mirrors>
<mirror>
<id>nexus-aliyun</id>
<mirrorOf>*</mirrorOf>
<name>Nexus aliyun</name>
<url>http://maven.aliyun.com/nexus/content/groups/public</url>
</mirror>
</mirrors>
Maven版的HelloWorld
- 编写主程序:src/main/java/coder163/HelloWorld.java
package coder163; public class HelloWorld{ public void sayHello(){ System.out.println("HelloMaven"); } }
- 编写单元测试类:src/test/java/coder163/Test01.java
package coder163; import org.junit.Test; public class TestHelloMaven{ @Test public void show(){ new HelloWorld().sayHello(); } }
- 编写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>HelloWord001</groupId>
<artifactId>Hello</artifactId>
<packaging>jar</packaging>
<version>0.0.1-SNAPSHOT</version>
<name>HelloWord001</name>
<url>http://maven.apache.org</url>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.10</version>
</dependency>
</dependencies>
</project>
- 常用指令
- mvn compile :编译项目
- mvn test :编译项目并且进行单元测试
- mvn clean :清除targe目录
- mvn package :将项目进行编译、测试、打包 jar\war\pom
- mvn install :将项目进行编译、测试、打包、发布到仓库中,例如:
mvn install:install-file -DgroupId=com.oracle -DartifactId=ojdbc14 -Dversion=10.2.0.1.0 -Dpackaging=jar -Dfile=C:/lib/ojdbc14.jar
- POM.xml标签解释
注意:maven中把项目名称、模块名称和版本统称为坐标,所有Jar的依赖都需要依靠坐标在仓库中进行查找
- <modelVersion>4.0.0</modelVersion>:maven的版本信息,固定值.不用管
- <groupId> :项目名称 <groupId>shop</groupId>
- <artifactId> :模块的名称 <artifactId>user</artifactId>
- <version> :项目发布的版本:测试版、快照版本、稳定版、发布版
- <packaging> :项目的打包方式:jar、war、pom
- <name> :随意
- <url> :仓库的地址,maven默认情况会先检查本地仓库,如果本地仓库没有所需要的jar,那么会去中央仓库下载
- <dependencies> :依赖,所有的依赖包都需要写在这个标签之内
- <dependency> :具体的依赖