目录
[maven 安装](#maven 安装)
[maven 安装目录分析](#maven 安装目录分析)
[检查 maven 是否配置成功](#检查 maven 是否配置成功)
[使用文件夹创建maven项目目录 创建Hello文件夹](#使用文件夹创建maven项目目录 创建Hello文件夹)
[使用文件夹创建maven项目目录 创建HelloFriend文件夹](#使用文件夹创建maven项目目录 创建HelloFriend文件夹)
[Import Project](#Import Project)
Maven的概念
什么Maven?
maven被翻译为翻译为"专家","内行"
Maven 是一个自动化构建工具,主要服务于基于 Java 的项目。
maven为什么服务?
Java项目 JavaWeb项目
maven的主要功能?
构建管理、依赖管理
依赖:第三方jar包
什么是依赖管理?
对第三方依赖包的管理,可以连接互联网下载项目所需第三方jar包。
对自己开发的模块的管理,可以像引用第三方依赖包一样引用自己项目的依赖包。
为什么使用maven?
每个人的idea配置不同,就很容易出现在本地能够运行的代码换个地方编译就出错
maven
拥有约定,知道你的代码在哪里,放到哪里去
拥有一个生命周期,例如执行 mvn install 就可以自动执行编译,测试,打包等构建过程
只需要定义一个pom.xml,然后把源码放到默认的目录,Maven帮你处理其他事情
拥有依赖管理,仓库管理
maven 安装
下载maven的地址 Maven -- Download Apache Maven
解压到相应目录即可(无中文路径)
maven 安装目录分析
bin:含有mvn运行的脚本
boot:含有plexus-classworlds类加载器框架
conf:含有settings.xml配置文件
lib:含有Maven运行时所需要的java类库
LICENSE.txt, NOTICE.txt, README.txt针对Maven版本,第三方软件等简要介绍
Maven的配置
点击conft,右键点击setttings使用Notepad++打开(或者其他可以查看代码的工具)
设置本地仓库位置,以后引入的jar包都会存放在这里
我这里设置的是D:\repository 如果D盘没有这个文件夹 系统会自动创建
设置阿里云的远程仓库,一定注意修改的范围不能放入注释中,否则无效
也可以设置腾讯云或者中央远程仓库
何为Maven仓库?
用来统一存储所有Maven共享构建的位置就是仓库
Maven仓库布局
根据Maven坐标定义每个构建在仓库中唯一存储路径
groupId/artifactId/version/artifactId-version.packaging
- groupId:组织标识,一般为:公司网址的反写+项目名
- artifactId:项目名称,一般为:项目名-模块名
- version:版本号 形式为0.0.1-SNAPSHOT:
- 第一个 0 表示大版本号,第二个 0 表示分支版本号,第三个 0 表示小版本号
- SNAPSHOT -- 快照版本,ALPHA -- 内侧版本,BETA -- 公测版本,RELEASE -- 稳定版本,GA -- 正式发布
- SNAPSHOT -- 快照版本,和RELEASE -- 稳定版本被使用的更多
- packaging:打包的方式,如:pom, jar, maven-plugin, ejb, war, ...
- clissifier:用来帮助定义构件输出的一些附属构件。
仓库的分类
1.本地仓库
• ~/.m2/repository/ 可修改
• 每个用户只有一个本地仓库
2.远程仓库
- 中央仓库:maven的默认仓库 https://mvnrepository.com/
- 私服:一种特殊的远程仓库(阿里云,腾讯云,局域网内)
Maven的环境配置
设置MAVEN_HOME环境变量
升级时只需要下载最新版本,解压缩重新设置MAVEN_HOME环境变量即可
变量值内容为你所下载的maven文件下bin的上一层
设置Path环境变量,把 %MAVEN_HOME%\bin 添加到Path的变量值末尾,与前面的内容用 ; 隔开,如图:
检查 maven 是否配置成功
打开cmd 输入 mvn -version
maven项目
Maven的第一个项目
使用文件夹创建maven项目目录 创建Hello文件夹
src/main/java ------ 存放项目的.java文件
src/main/resources ------ 存放项目资源文件,如spring, mybatis配置文件
src/test/java ------ 存放所有测试.java文件,如JUnit测试类
src/test/resources ------ 测试资源文件
target ------ 项目输出位置
pom.xml
在项目Hello根目录建立pom.xml
java
<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>cn.tx.maven</groupId>
<artifactId>Hello</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>Hello</name>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.9</version>
<scope>test</scope>
</dependency>
</dependencies>
</project>
创建Hello.java文件
在src/main/java/cn/tx/maven目录下新建文件Hello.java
java
package cn.tx.maven;
public class Hello {
public String sayHello(String name){
return "Hello "+name+"!";
}
}
创建HelloTest.java文件
在/src/test/java/cn/tx/maven目录下新建测试文件HelloTest.java
java
package cn.tx.maven;
import org.junit.Test;
import static junit.framework.Assert.*;
public class HelloTest {
@Test
public void testHello(){
Hello hello = new Hello();
String results = hello.sayHello("maven");
assertEquals("Hello maven!",results);
}
}
进行maven的项目操作
-
打开cmd命令行,进入Hello项目根目录执行 mvn compile命令,查看根目录变化
-
cmd 中继续录入mvn clean命令,然后再次查看根目录变化
-
cmd 中录入 mvn clean compile命令, 查看根目录变化
-
cmd 中录入 mvn clean test命令,查看根目录变化
-
cmd 中录入 mvn clean package命令,查看根目录变化
-
cmd 中录入 mvn clean install 查看仓库会把项目安装到仓库里
打包完成之后可以查看打包好的jar包,这个包在你的本地仓库中
Maven的第二个项目
使用文件夹创建maven项目目录 创建HelloFriend文件夹
HelloFriend
--src
-----main
----------java
----------resources
-----test
---------java
---------resources
--pom.xml
在项目HelloFriend根目录建立pom.xml
java
<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>cn.tx.maven</groupId>
<artifactId>HelloFriend</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>HelloFriend</name>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.9</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>cn.tx.maven</groupId>
<artifactId>Hello</artifactId>
<version>0.0.1-SNAPSHOT</version>
<scope>compile</scope>
</dependency>
</dependencies>
</project>
创建HelloFriend.java文件
在src/main/java/cn/tx/maven目录下新建文件HelloFriend.java
java
package cn.tx.maven;
import cn.tx.maven.Hello;
public class HelloFriend {
public String sayHelloToFriend(String name){
Hello hello = new Hello();
String str = hello.sayHello(name)+" I am "+this.getMyName();
System.out.println(str);
return str;
}
public String getMyName(){
return "John";
}
}
创建HelloFriendTest.java文件
在/src/test/java/cn/tx/maven目录下新建测试文件HelloFriendTest.java
java
package cn.tx.maven;
import static junit.framework.Assert.assertEquals;
import org.junit.Test;
import cn.tx.maven.Hello;
public class HelloFriendTest {
@Test
public void tesHelloFriend(){
HelloFriend helloFriend = new HelloFriend();
String results = helloFriend.sayHelloToFriend("zhangsan");
assertEquals("Hello zhangsan! I am John",results);
}
}
测试打包HelloFriend项目
在HelloFriend目录下执行命令mvn package
系统报错提示:Could not find artifact cn.tx.maven:Hello:jar:0.0.1-SNAPSHOT,表示无法找到HelloFriend所依赖的Hello 0.0.1-SNAPSHOT.jar
故此我们需要重新构建第一个项目Hello并安装到数据仓库,在命令行Hello根目录下执行mvn clean install
对Hello项目进行清理并安装后,对HelloFriend项目再次进行打包
可以看到本次打包成功,说明HelloFriend项目已经可以加载Hello项目所打包的jar包
IDEA整合Maven项目
IDEA的Maven全局配置
IDEA创建Maven的Java项目
IDEA创建Maven的JavaWeb项目
接下来需要进行一些配置来确定web项目可以正常运行
添加war包的方法:
配置web服务器
添加本地tomcat配置
测试项目运行
至此,在IDEA上使用Maven配置的Java web工程已经完成配置
IDEA导入既有Maven项目
两种方式Import Project和Open
Import Project
导入引入依赖Hello项目的HelloFriend项目,可以看到Hello项目已经被打成jar包引用到HelloFriend的Maven依赖中
Open
Maven项目视图
Maven项目视图主要用于查看该maven项目的各项属性,同时也可以进行一些常见的maven的操作,比如打包,清理,测试等等;