- 浏览: 940408 次
- 性别:
- 来自: 江西上饶
文章分类
- 全部博客 (460)
- p.spring (56)
- p.maven (20)
- p.ant (17)
- p.jee (18)
- p.jse (33)
- p.ofbiz (31)
- p.软件工程 (8)
- p.struts2 (5)
- p.hibernate (5)
- linux (25)
- 设计模式 (2)
- p.javascript (11)
- 硬件 (1)
- p.jsp (2)
- p.windows批处理 (1)
- 操作系统问题 (5)
- 算法 (1)
- p.mysql (7)
- p.sql (5)
- p.c (1)
- google产品 (0)
- 内存 (1)
- p.struts (1)
- p.freemarker (7)
- p.css (4)
- p.log4j (10)
- p.html (3)
- 淘宝产品 (0)
- 其他 (3)
- 编译器 (0)
- svn (4)
- p.spring.security (11)
- 图形 (0)
- p.xml (1)
- p.ssh (0)
- p.jquery (4)
- p.jdbc (3)
- p.flex (0)
- p.c++ (0)
- p.c#Net (0)
- p.assembly (0)
- p.sqlserver (0)
- p.其他 (3)
- p.webwork (21)
- p.wap (12)
- p.cglib (1)
- p.jee服务器 (11)
- windows (2)
- p.iphone (1)
- p.java.分布式与集群 (2)
- p.ibatis (16)
- p.eclipse (5)
- 架构 (2)
- http协议 (5)
- 我的个人标准 (2)
- 多线程 (1)
- 奇怪问题 (5)
- p.jira (13)
- p.httpclient (1)
- 服务器.apache (11)
- 安全防范 (1)
- p.PODAM (1)
- p.junit (16)
- fop (2)
- 硬盘安装 (1)
- powerdesigner (0)
- 单元测试 (1)
- apache commons (4)
- tomcat+apache集群 (10)
- 各类诡辩 (1)
- 安卓 (8)
- qvod (1)
- java编程基础知识考试考点及答案 (0)
- 工作总结 (4)
- oracle (0)
- spring的util工具 (3)
- json (2)
- maven (3)
- jms (19)
- p.bat (3)
- hadoop (2)
- git (3)
- nginx (1)
- p.移动开发 (1)
- shiro (3)
- 游戏破解 (1)
- react-native (7)
- ios开发 (1)
- webmagic (6)
- socks5 (1)
最新评论
-
weituotian:
说的不好,没人看的
公司系统中的菜单功能和权限功能 -
石不易:
非常详细的注解~
绑定端口和IP,Listen 与VirtualHost指令 -
spring_springmvc:
spring mvc demo教程源代码下载,地址:http: ...
spring mvc -
liyixing1:
PandaDONG 写道谢谢你啊,我已经下下来了,只是还有很多 ...
jira war安装 -
liyixing1:
PandaDONG 写道谢谢你啊,我已经下下来了,只是还有很多 ...
jira war安装
依赖具有范围,默认为全局范围
也可以指定依赖范围
Maven有以下几种依赖范围:
compile:编译依赖范围(默认),使用此依赖范围对于编译、测试、运行三种 classpath 都有效,即在编译、测试和运行的时候都要使用该依赖jar包;
test:测试依赖范围,从字面意思就可以知道此依赖范围只能用于测试classpath,而在编译和运行项目时无法使用此类依赖,典型的是JUnit,它只用于编译测试代码和运行测试代码的时候才需要;
provided:此依赖范围,对于编译和测试classpath有效,而对运行时无效;例如对于servlet的依赖,只有在测试和编译时有效,之后就无效了
runtime:运行时依赖范围,对于测试和运行classpath有效,但是在编译主代码时无效,典型的就是JDBC驱动实现;
system:系统依赖范围,使用system范围的依赖时必须通过systemPath元素显示地指定依赖文件的路径,不依赖Maven仓库解析,所以可能会造成建构的不可移植,谨慎使用。
依赖传递性
简单点理解,可以看成A依赖B,B依赖C,那么A也依赖C
Maven建立一个依赖图,并且处理一些可能发生的冲突和重叠。例如,如果Maven看到有两个项目依赖于同样的groupId和artifactId,它会自动整理出使用哪个依赖,选择那个最新版本的依赖。虽然这听起来很方便,但在一些边界情况中,传递性依赖会造成一些配置问题。在这种情况下,你可以使用依赖排除。
另外,如果依赖指定了范围,那么在进行传递性依赖的时候,会做一些算法,包括如下
compile范围的依赖,会一直传递给其他范围
provided范围的依赖,只会传递给provided范围的
runtime范围的依赖,会传递给runtime和provided范围和test范围
test范围只会传递给test
排除传递依赖
通过exclusions和exclusion
当版本冲突时maven默认选择最新的。
但是当artifactId和artifactId不一样的时候,Maven就会认为它们是两种不同的类
库。
dependencyManagement
dependencyManagement可以作为父pom对只项目的依赖管理的统一控制
依赖版本界限
可以指定范围
(, )
不包含量词
[, ]
包含量词
如[4.0,)
,“[4.0,)”意思是任何大于等于4.0的版本,“(,2.0)”意思是任意小于2.0的版
本。“[1.2]”意思是只有版本1.2,没有其它。
方括号和圆括号可以混合用。
方括号可以看成 >= 和<=
圆括号可以看成 >和<
也可以指定依赖范围
Maven有以下几种依赖范围:
compile:编译依赖范围(默认),使用此依赖范围对于编译、测试、运行三种 classpath 都有效,即在编译、测试和运行的时候都要使用该依赖jar包;
test:测试依赖范围,从字面意思就可以知道此依赖范围只能用于测试classpath,而在编译和运行项目时无法使用此类依赖,典型的是JUnit,它只用于编译测试代码和运行测试代码的时候才需要;
provided:此依赖范围,对于编译和测试classpath有效,而对运行时无效;例如对于servlet的依赖,只有在测试和编译时有效,之后就无效了
runtime:运行时依赖范围,对于测试和运行classpath有效,但是在编译主代码时无效,典型的就是JDBC驱动实现;
system:系统依赖范围,使用system范围的依赖时必须通过systemPath元素显示地指定依赖文件的路径,不依赖Maven仓库解析,所以可能会造成建构的不可移植,谨慎使用。
依赖传递性
简单点理解,可以看成A依赖B,B依赖C,那么A也依赖C
Maven建立一个依赖图,并且处理一些可能发生的冲突和重叠。例如,如果Maven看到有两个项目依赖于同样的groupId和artifactId,它会自动整理出使用哪个依赖,选择那个最新版本的依赖。虽然这听起来很方便,但在一些边界情况中,传递性依赖会造成一些配置问题。在这种情况下,你可以使用依赖排除。
另外,如果依赖指定了范围,那么在进行传递性依赖的时候,会做一些算法,包括如下
compile范围的依赖,会一直传递给其他范围
provided范围的依赖,只会传递给provided范围的
runtime范围的依赖,会传递给runtime和provided范围和test范围
test范围只会传递给test
排除传递依赖
<dependency> <groupId>org.sonatype.mavenbook</groupId> <artifactId>project-a</artifactId> <version>1.0</version> <exclusions> <exclusion> <groupId>org.sonatype.mavenbook</groupId> <artifactId>project-b</artifactId> </exclusion> </exclusions> </dependency>
通过exclusions和exclusion
<dependencies> <dependency> <groupId>org.hibernate</groupId> <artifactId>hibernate</artifactId> <version>3.2.5.ga</version> <exclusions> <exclusion> <groupId>javax.transaction</groupId> <artifactId>jta</artifactId> </exclusion> </exclusions> </dependency> <dependency> <groupId>org.apache.geronimo.specs</groupId> <artifactId>geronimo-jta_1.1_spec</artifactId> <version>1.1</version> </dependency> </dependencies>
当版本冲突时maven默认选择最新的。
但是当artifactId和artifactId不一样的时候,Maven就会认为它们是两种不同的类
库。
dependencyManagement
dependencyManagement可以作为父pom对只项目的依赖管理的统一控制
依赖版本界限
可以指定范围
(, )
不包含量词
[, ]
包含量词
如[4.0,)
,“[4.0,)”意思是任何大于等于4.0的版本,“(,2.0)”意思是任意小于2.0的版
本。“[1.2]”意思是只有版本1.2,没有其它。
方括号和圆括号可以混合用。
方括号可以看成 >= 和<=
圆括号可以看成 >和<
发表评论
-
Invalid signature file digest for Manifest main attributes
2015-09-23 14:26 8146java.lang.SecurityException: In ... -
Unable to locate Spring NamespaceHandler for XML schema namespace
2015-09-23 14:00 2295org.springframework.beans.facto ... -
利用maven的filter和profile实现不同环境使用不同的配制
2015-07-30 12:54 681通过命令行模式 https://liyixing1.itey ... -
Nexus 仓库管理器
2015-04-02 11:15 1076简介 仓库管理器有两个 ... -
Profile
2015-03-30 11:55 587Profile是可以在指定环境通过指定指令或者自动触发,用来 ... -
settings.xml
2014-12-31 10:41 718settings.xml文件可以放在两个地方 • Maven安 ... -
属性 自定义属性 资源过滤
2014-12-30 21:57 1200通过${}访问属性 。Mave ... -
版本号规范,镜像版本SNAPSHOT,LATEST 和 RELEASE 版本
2014-12-30 16:46 6071如果版本号不遵守maven规范,那么maven在对版本进行排序 ... -
依赖传递分析 dependency 插件
2014-12-30 15:29 915基本分析: mvn dependency:analyze 可 ... -
多模块项目
2014-12-29 17:02 471多模块首先需要创建一个父项目,父项目负责对子项目的管理,按照规 ... -
archetype
2014-12-28 21:15 725网址 该插件为maven原型插件,该插件平台上存储了多种常见的 ... -
打包插件 assembly
2014-12-27 14:14 741http://maven.apache.org/plugins ... -
测试插件,surefire-plugin
2014-12-27 13:41 823主页 完整参数 maven默认配置已经加载过该插件 相当于 ... -
插件,插件目标,生命周期,坐标,仓库,依赖管理
2014-12-25 16:07 455插件与目标(Plugins and g ... -
help插件
2014-12-24 15:56 690Maven Help 插件有四个目标。前三个目标是—— act ... -
pom.xml
2014-12-24 13:57 697每个maven文件都需要一 ... -
安装maven及测试第一个项目
2014-12-23 11:57 471maven需要配置几个环境变量 M2_HOME,用来指定mav ... -
maven的优势理解
2014-12-23 11:51 9711.对于svn等版本控制的库而言,具有减少上传空间的作用,这个 ... -
maven转eclipse JEE应用
2011-06-19 15:26 2389我的maven结构是 外层应用 biz应用 web应用 创 ...
相关推荐
暂时的项目依赖
Maven项目依赖内含druid.properties(阿里巴巴的德鲁伊连接池)和log4j.properties(日志)和jdbcutils.java类(在连接池的情况下获得连接)
NULL 博文链接:https://rockie-yung.iteye.com/blog/333311
在HTML手机端页面中实现PDF文件的优化预览体验,是一款不错的js控件
解决idea导入项目出错,在别人电脑上没问题,考过来就报错,依赖找不到。项目打包很小,项目依赖没有打进去,等问题
最全的ssm项目依赖包,包括ssm项目用到的 spring springmvc mybatis的jar包和依赖jar包
Android Studio jar、so、library项目依赖,资源对应博文: http://zhengxiaopeng.com/2014/12/13/Android-Studio-jar、so、library项目依赖/
idea 运行项目依赖war包的办法 不需要用新tomcat运行,直接和项目一起启动的办法.
Maven 是一个流行的 Java 项目依赖管理工具
web项目依赖Zelix KlassMaster工具混淆步骤,以及配置
Strom项目依赖所需jar
该文档是如何查看maven项目依赖的jar包树,请大家下载!
首先把解压后的jar直接丢进项目依赖;然后,在你的main方法中(启动类)添加 jbcrack.Cracker.justDoIt(); 就可以玩耍了
David帮助你的Node.js项目依赖保持最新
android5.0开发依赖工程,整合成一个依赖工程
versioneye是VersionEye开源的帮助更新项目依赖项的同名持续集成工具。该工具提出了“持续更新(continuous updating)”的概念,它可以提供许多软件库的更新通知、许可检查和安全漏洞信息。
项目依赖腾讯提供的地图API,主要实现了地图定位,地图标注等常见的功能.rar,太多无法一一验证是否可用,程序如果跑不起来需要自调,部分代码功能进行参考学习。
moquette源码所需的jar包,git上下载的是maven项目,转为java项目后所需的jar包
本资源包含:spring3/mybatis/jstl/springMVC/fastjson/log4j相关的jar包
一些Java应用程序都有依赖性,不可以在一个公共Maven存储库。本文档向您展示了如何在应用程序中添加这些库项目,告诉Maven如何找到他们…