Maven入门基础
来源:互联网 发布:网络促销手段 编辑:程序博客网 时间:2024/05/21 22:53
导言:从helloworld起步,所有关于maven的使用我们先让它在电脑上跑起来,先把理论放一放。不过在本博文中会穿插一些官方的参考文档,官文上会有很详细的说明
1.下载,安装,直接解压
官网地址:http://maven.apache.org/download.cgi
开源软件的目录结构很重要,最好每个打开看一看,这里不做详细介绍
2.配置环境变量
M2_HOME = [maven所在的系统路径] (D:\SoftWare\apache-maven\apache-maven-3.3.9) 本机地址
PATH = %M2_HOME%/bin
3.测试安装和环境变量配置是否成功
在命令提示符窗口下输入
mvn –version
会显示如下信息,表示安装和配置都成功,即可以开始进行下一步操作了
Apache Maven 3.3.9 (bb52d8502b132ec0a5a3f4c09453c07478323dc5; 2015-11-11T00:41:47+08:00)Maven home: D:\SoftWare\apache-maven\apache-maven-3.3.9Java version: 1.8.0_31, vendor: Oracle CorporationJava home: C:\Java\jdk1.8.0_31\jreDefault locale: zh_CN, platform encoding: GBKOS name: "windows 8.1", version: "6.3", arch: "amd64", family: "dos"
4. maven使用前必须保证本机有java的运行环境
如以上信息 Java home: C:\Java\jdk1.8.0_31\jre
5.手动构建maven项目
1.在本机的D:\Test\MavenTest目录下新建一个文件夹maven-ch01 ,这个maven-ch01表示我们的项目文件夹。
2.在maven-ch01文件夹下新建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/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.model.maven</groupId> <artifactId>maven-ch01</artifactId> <version>1.0-SNAPSHOT</version> <packaging>jar</packaging> </project>
什么是POM?—–POM的官方参考
POM Reference
3.新建HelloMaven.java在 以下目录中
D:\Test\MavenTest\maven-ch01\src\main\java\com\model\maven
\src\main\java (maven识别的固定格式)
\com\model\maven (可以理解为包名)
package com.model.maven;public class HelloMaven{ public String sayHello(String name){ return "hello "+name; } }
4.打开命令提示符窗口 切到D:\Test\MavenTest\maven-ch01>
输入maven命令
mvn clean compile
看到[INFO]BUILD SUCCESS 表示编译成功
看到[INFO]BUILD FAILTUTE 失败,检查pom.xml,项目的文件结构或者java文件是否正确。
这时你会发现maven-ch01项目下多了一个target文件夹。这里面存有编译后的class文件
到此maven第一项目例子就搭建成功
5.对HelloMaven进行测试
i.在D:\Test\MavenTest\maven-ch01\src\test\java\com\model\maven
新建TestHelloMaven.java
\src\test\java 固定写法
\com\model\maven 包名
package com.model.maven;import org.junit.*;import static org.junit.Assert.*;public class TestHelloMaven{ @Test public void testSayHello(){ HelloMaven hm = new HelloMaven(); String str = hm.sayHello("maven"); assertEquals(str,"hello:maven"); } }
ii.打开命令提示符窗口 切到D:\Test\MavenTest\maven-ch01>
输入maven命令
mvn clean test
测试失败
原因:你没有导入org.junit包,当然无法正常运行
解决办法:用maven导包
iii.修改你的pom.xml配置文件。新加dependencies标签
<?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>com.model.maven</groupId> <artifactId>maven-ch01</artifactId> <version>1.0-SNAPSHOT</version> <packaging>jar</packaging> <dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.8.2</version> <scope>test</scope> </dependency> </dependencies> </project>
iv.再次输入maven命令
mvn clean test
会到 Apache的Maven仓库中 download 你所需要的jar文件,然后放入本地上。默认存放路径 C:\Users\lenovo\.m2\repository (lenovo是用户名) 可以手动指定存放位置。
v.命令窗口中看到 [INFO]BUILD SUCCESS 表示测试成功
vi.看到这里你应该感觉到了maven的用处之一了,jar包的集中管理。通过pom.xml可以从本地仓库(C:\Users\lenovo\.m2\repository)中引用你所需要的各种jar。(本地仓库中没有会先从网上load,不过因为是外网下载速度很慢)。所有pom.xml的配置尤为关键。
6.手动打包maven项目到本地仓库
1.打开命令提示符窗口
转到D:\Test\MavenTest\maven-ch01-> mvn clean package
打包后的jar文件在 \maven-ch01\target 目录下
jar文件的命令规则是根据pom.xml生成的。
[artifactId]-[version].jar
观察jar文件,你会发现测试类并未打包进去,这是因为你在pom.xml中设置了依赖范围scope
<dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.8.2</version> <scope>test</scope> </dependency> </dependencies>
scope:
compile(编译范围)
compile是默认的范围;如果没有提供一个范围,那该依赖的范围就是编译范
围。编译范围依赖在所有的classpath中可用,同时它们也会被打包。
provided(已提供范围)
provided依赖只有在当JDK或者一个容器已提供该依赖之后才使用。例如,如果
你开发了一个web应用,你可能在编译classpath中需要可用的Servlet API来编
译一个servlet,但是你不会想要在打包好的WAR中包含这个Servlet API;这个
Servlet API JAR由你的应用服务器或者servlet容器提供。已提供范围的依赖在
编译classpath(不是运行时)可用。它们不是传递性的,也不会被打包。
runtime(运行时范围)
runtime依赖在运行和测试系统的时候需要,但在编译的时候不需要。比如,你
可能在编译的时候只需要JDBC API JAR,而只有在运行的时候才需要JDBC驱动实
现。
test(测试范围)
test范围依赖 在一般的 编译和运行时都不需要,它们只有在测试编译和测试运
行阶段可用。
system(系统范围)
system范围依赖与provided类似,但是你必须显式的提供一个对于本地系统中
JAR文件的路径。这么做是为了允许基于本地对象编译,而这些对象是系统类库
的一部分。这样的构件应该是一直可用的,Maven也不会在仓库中去寻找它。。如
果你将一个依赖范围设置成系统范围,你必须同时提供一个systemPath元素。注
意该范围是不推荐使用的(你应该一直尽量去从公共或定制的Maven仓库中引用
依赖)。
2.打包完成后 ,将jar包放入到本地仓库
在命令提示窗口
转到 D:\Test\MavenTest\maven-ch01->mvn clean install
命令窗口中看到 [INFO]BUILD SUCCESS 表示install成功
到本地仓库(C:\Users\lenovo.m2\repository)中去寻找我们的jar
可以从目录结构中看到,目录结构生成规则也是依赖pom.xml
[groupId] \[artifactId]\[version]\xxx.jar
这样你就可以在其他的项目中使用这个jar文件只需要在pom.xml中配置
<dependencies> <dependency> <groupId>com.model.maven</groupId> <artifactId>maven-ch01</artifactId> <version>1.0-SNAPSHOT</version> </dependency> </dependencies>
补充
关于maven的详细学习,可以参考以下网站
Maven Tutorial
Maven in 5 Minutes
Maven Users Centre
- maven的基础入门
- maven入门基础
- MAVEN基础入门
- maven 零基础入门
- Maven基础--入门
- Maven入门基础
- Maven基础入门
- maven入门基础
- Maven入门--基础篇
- Maven基础学习(一)—Maven入门
- Maven基础学习(一)—Maven入门
- Maven基础学习—Maven入门
- Maven学习之基础入门
- Maven入门基础-环境篇
- Maven 环境搭建基础入门篇
- Java开发基础——Maven入门
- MAVEN入门学习之路--基础
- 【maven学习笔记】maven基础入门学习中文教程
- jquery 跨域
- JPA 、 @ManyToOne、@OneToMany 外键 关联 设置关联项为NULL的问题完美解决
- jquery Ajax实现代码
- HTML 标签速查
- algorithm 1.4.18
- Maven入门基础
- 原生jsAJax实现代码
- Java设计模式---单例模式的实现
- 使用Anaconda安装Python
- 用闭包实现非侵入式缓存
- josnp跨域
- 设计模式-结构型-代理模式(Proxy)
- HDOJ 3549 Flow Problem(最大流)
- listview的item里面有Button,并给其设置了点击事件,而且有效可点击,但是listview的item点击事件却失效了