maven使用(一)
在官网上下载maven的包http://maven.apache.org/download.cgi
下载压缩包apache-maven-3.3.9-bin.zip
在环境变量中新建变量:
M2-HOME=D:\apache-maven-3.3.9-bin\apache-maven-3.3.9
配置path,添加路径
path=D:\apache-maven-3.3.9-bin\apache-maven-3.3.9\bin
然后再cmd中输入命令:mvn -v 可以查看maven的版本

现在就已经安装成功啦!
mvn的一些指令:
mvn compile 编译
mvn test 编译并测试
mvn clean 清空生成的文件
mvn package 打包
mvn install 是把打出的包装载到本地仓库
pom.xml文件
<?mxl 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.</modelVersion>
<groupId>com.xidian.test</groupId>
<artifactId>first_maven_test</artifactId>
<version>0.0.-SNAPSHOT</version> <dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.10</version> </dependency> </dependencies>
</project>
GroupID是项目组织唯一的标识符,实际对应Java的包的结构
ArtifactID就是项目的唯一的标识符,实际对应项目的名称,就是项目根目录的名称。
在另一个项目中引用前一个模块的包。只需要加入一个<dependency>
同时 mvn install前一个模块将其打包装载到本地仓库。
<?mxl 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.</modelVersion>
<groupId>com.xidian.test2</groupId>
<artifactId>second_maven_test</artifactId>
<version>0.0.-SNAPSHOT</version> <dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.10</version>
</dependency>
<dependency>
<groupId>com.xidian.test</groupId>
<artifactId>first_maven_test</artifactId>
<version>0.0.-SNAPSHOT</version>
</dependency> </dependencies>
</project>
maven会现在本地仓库中找文件,如果没有找到就到网络中的中央仓库汇总去找。
本地仓库的位置:C:\Users\DELL\.m2\repository
修改默认本地仓库的位置:apache-maven-3.3.9-bin\apache-maven-3.3.9\conf\settings.xml

在apache-maven-3.3.9-bin\apache-maven-3.3.9\lib\maven-model-builder-3.3.9.jar中的
pom-4.0.0.xml文件中有中央仓库的地址
https://repo.maven.apache.org/maven2/
eclipse中使用maven:
在eclipse中配置自己安装的maven,不用eclipse自带的。

然后更改User Setting配置:

创建一个maven Project

archtetype是maven的骨架,这里选择quickstart

输入项目名称和模块名称:

生成的文件结构:

<scope>指定依赖的范围:
1.test 是指只在测试范围内有效,编译和打包的时候不会使用这个依赖。
如junit包,dbunit包,打包之后对应用没有作用且影响加载速度。
且只能作用于src/test中。
2.compile(默认)
编译范围内有效,在编译和打包的时候都会讲依赖加载进去。
3.provided(已提供范围) 只在编译和测试的时候有效,最后打包成war包的时候不会加入。
provided 依赖只有在当JDK 或者一个容器已提供该依赖之后才使用。例如, 如果你开发了一个web 应用,
你可能在编译 classpath 中需要可用的Servlet API 来编译一个servlet,但是你不会想要在打包好的WAR 中包含这个Servlet API;
这个Servlet API JAR 由你的应用服务器或者servlet 容器提供。
4.runtime(运行时范围)
依赖在运行和测试系统的时候需要,但在编译的时候不需要。
如驱动实现。jdbc。
maven的依赖特性:
依赖会传递,对于依赖的传递问题,主要针对的是compile作用域传递,test域不会传递
间接依赖的冲突问题:
如果层级不一样:
假设A-->包A-->包B2.0
B-->包B1.0
C-->A B
那么会选择依赖层级少的包1.0
如果依赖的层级一样:
假设A-->包1.0
B-->包2.0
C-->A B
那么C中对包的依赖会选择先在依赖声明中配置的那个。
参考学习视频:
http://www.icoolxue.com/album/show/45/
maven使用(一)的更多相关文章
- 【分享】标准springMVC+mybatis项目maven搭建最精简教程
文章由来:公司有个实习同学需要做毕业设计,不会搭建环境,我就代劳了,顺便分享给刚入门的小伙伴,我是自学的JAVA,所以我懂的.... (大图直接观看显示很模糊,请在图片上点击右键然后在新窗口打开看) ...
- 理解Maven中的SNAPSHOT版本和正式版本
Maven中建立的依赖管理方式基本已成为Java语言依赖管理的事实标准,Maven的替代者Gradle也基本沿用了Maven的依赖管理机制.在Maven依赖管理中,唯一标识一个依赖项是由该依赖项的三个 ...
- 【微框架】Maven +SpringBoot 集成 阿里大鱼 短信接口详解与Demo
Maven+springboot+阿里大于短信验证服务 纠结点:Maven库没有sdk,需要解决 Maven打包找不到相关类,需要解决 ps:最近好久没有写点东西了,项目太紧,今天来一篇 一.本文简介 ...
- 安装eclipse的maven插件
我们团队用maven来管理项目需要的库文件,其实以前都没听过maven,第一次接触这个,师兄要我直接去装下这个,开始以为还挺简单的,没想到中间遇到了一些小麻烦,现在把我成功安装maven的过程分享下, ...
- MAVEN学习-第一个Maven项目的构建
MAVEN安装成功之后就可以进行项目的构建和管理了: 为什么要用maven进行项目的构建和管理? 对于初学者来说一个最直接的也是最容易里的优点在于JAR包的管理,相对于以前开发一个项目的时候我们需要用 ...
- Maven 代理设置
在maven的安装目录下 %MAVEN_HOME%/conf/setting.xml 中进行设置 <proxies> <!-- proxy | Specificatio ...
- spring maven pom.xml设置
spring pom.xml设置 <?xml version="1.0" encoding="UTF-8"?> <project xmlns= ...
- maven依赖查询地址
http://search.maven.org/#search%7Cga%7C1%7C
- maven 中snapshot版本和release版本的区别
maven中的仓库分为两种,snapshot快照仓库和release发布仓库.snapshot快照仓库用于保存开发过程中的不稳定版本,release正式仓库则是用来保存稳定的发行版本.定义一个组件/模 ...
- Maven多模块,Dubbo分布式服务框架,SpringMVC,前后端分离项目,基础搭建,搭建过程出现的问题
现互联网公司后端架构常用到Spring+SpringMVC+MyBatis,通过Maven来构建.通过学习,我已经掌握了基本的搭建过程,写下基础文章为而后的深入学习奠定基础. 首先说一下这篇文章的主要 ...
随机推荐
- Vim使用技巧(4) -- 命令行模式 【持续更新】
基本保存,退出,帮助 :help //帮助 :w //保存 :q //退出 :wq //保存后退出 :q! //强制不保存退出 %s/a/b/g //将当前文件的a全部替换成b /abc //正向查找 ...
- 【转】Monkey测试2——Monkey测试策略
Monkey的测试策略 一. 分类 Monkey测试针对不同的对象和不同的目的采用不同的测试方案,首先测试的对象.目的及类型如下: 测试的类型分为:应用程序的稳定性测试和压力测试 测试对象分为:单一a ...
- Oracle 查询并修改
update test1 a set a.name=(select b.name from test2 b where a.id=b.id) where a.id in (select id from ...
- 访问 JavaBean 对象的属性
在 <jsp:useBean> 标签主体中使用 <jsp:getProperty/> 标签来调用 getter 方法,使用 <jsp:setProperty/> 标 ...
- Spring MVC4使用Servlet3 MultiPartConfigElement文件上传实例
在这篇文章中,我们将使用Spring MultipartResolver 实现 StandardServletMultipartResolver在Servlet3环境中实现单点和多文件上传功能.Spr ...
- Spring MVC密码处理
以下示例显示如何在使用Spring Web MVC框架的表单中使用密码.首先使用Eclipse IDE来创建一个WEB工程,并按照以下步骤使用Spring Web Framework开发基于动态表单的 ...
- 读汤姆大叔《深入理解javascript系列》笔记一编写高质量代码
感觉大叔的博文真的是很不错 我打算严格要求自己 按照大叔说的,这样我就会更有规范,更有思想的去工作 去写代码(一入代码深似海) 1,尽可能的少用全局变量(污染全局空间,也会和别人的代码 发生冲突造 ...
- 回顾下WinMain
我们在学习标准C++的时候,都知道每个应用程序运行时都会先进入入口点函数main,而当从main函数跳出时程序就结束了.在Windows编程里面,也是一样的,只是我们的入口点函数不叫main,叫Win ...
- hdu 3715(二分+2-sat)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3715 思路:二分深度,2-sat判断可行性,根据矛盾关系建图:设a=0,a'=1,b=0,b'=1;如 ...
- C++ RTTI的应用
先看下方的代码,我们所处的context在<<< void* pX = (void*)pGiven; >>>处,只知道上面这些类的信息和pX指针,怎么判断pX指向对 ...