Maven - Scope区别】的更多相关文章

依赖的Scope scope定义了类包在项目的使用阶段.项目阶段包括: 编译,运行,测试和发布. 分类说明 compile 默认scope为compile,表示为当前依赖参与项目的编译.测试和运行阶段,属于强依赖.打包之时,会达到包里去.test 该依赖仅仅参与测试相关的内容,包括测试用例的编译和执行,比如定性的Junit. runtime 依赖仅参与运行周期中的使用.一般这种类库都是接口与实现相分离的类库,比如JDBC类库,在编译之时仅依赖相关的接口,在具体的运行之时,才需要具体的mysql.…
目录 简介 gradle和maven的比较 可扩展性 性能比较 依赖的区别 从maven迁移到gradle 自动转换 转换依赖 转换repositories仓库 控制依赖的版本 多模块项目 profile和属性 资源处理 深入了解gradle和maven的区别 简介 gradle和maven都可以用来构建java程序,甚至在某些情况下,两者还可以互相转换,那么他们两个的共同点和不同点是什么?我们如何在项目中选择使用哪种技术呢?一起来看看吧. gradle和maven的比较 虽然gradle和ma…
Maven Scope的使用: http://www.cnblogs.com/wangyonghao/p/5976055.html servlet-api和jsp-api等jar包,一般由servlet容器提供,无需在打包到war包中,如果把这些包打包到工程war包中,在tomcat6以上版本会出现冲突无法正常运行程序(版本不符的情况).可以通过配置范围为provided来实现只在编译的classpath中加载和使用,打包的时候不会包含在目标包中的功能. jstl-imp.jar需要随项目一起发…
Apache Ant和Apache Maven的区别 分类: ANT Maven 2013-12-10 18:47 1477人阅读 评论(26) 收藏 举报 ———摘自<maven权威指南> Apache Ant 1.Ant 是程序化的,你必须明确的告诉 Ant 做什么,什么时候做.你必须告诉它去编译,然后复制,然后压缩. 2.Ant 没有生命周期,你必须定义目标和目标之间的依赖.你必须手工为每个目标附上一个任务序列. Apache Maven 1.Maven 拥有约定,因为你遵循了约定,它已…
解释 其实这个问题很简单. 对于scope=compile的情况(默认scope),也就是说这个项目在编译,测试,运行阶段都需要这个artifact(模块)对应的jar包在classpath中. 而对于scope=provided的情况,则可以认为这个provided是目标容器已经provide这个artifact.换句话说,它只影响到编译,测试阶段.在编译测试阶段,我们需要这个artifact对应的jar包在classpath中,而在运行阶段,假定目标的容器(比如我们这里的liferay容器)…
依赖的Scopescope定义了类包在项目的使用阶段.项目阶段包括: 编译,运行,测试和发布. 分类说明compile 默认scope为compile,表示为当前依赖参与项目的编译.测试和运行阶段,属于强依赖.打包之时,会达到包里去.test 该依赖仅仅参与测试相关的内容,包括测试用例的编译和执行,比如定性的Junit.runtime 依赖仅参与运行周期中的使用.一般这种类库都是接口与实现相分离的类库,比如JDBC类库,在编译之时仅依赖相关的接口,在具体的运行之时,才需要具体的mysql.ora…
Maven面临的挑战 软件行业新旧交替的速度之快往往令人咂舌,不用多少时间,你就会发现曾经大红大紫的技术已经成为了昨日黄花,当然,Maven也不会例外.虽然目前它基本上是Java构建的事实标准,但我们也能看到新兴的工具在涌现,比如基于Goovy的Gradle,而去年Hibernate宣布从Maven迁移至Gradle这一事件更是吸引了不少眼球.在此之前,我也听到了不少对Maven的抱怨,包括XML的繁冗,不够灵活,学习曲线陡峭等等.那Gradle是否能够在继承 Maven优点的基础上,克服这些缺…
1.枚举各个属性值的含义 compile,缺省值,适用于所有阶段,会打包进项目. provided,类似compile,期望JDK.容器或使用者会提供这个依赖. runtime,只在运行时使用,如JDBC驱动,适用运行和测试阶段. test,只在测试时使用,用于编译和运行测试代码.不会随项目发布. system,类似provided,需要显式提供包含依赖的jar,Maven不会在Repository中查找它. 2.其它类型的属性值都比较容易理解,这里重点比较一下compile和runtime之间…
compile:默认的scope.任何定义在compile scope下的依赖将会在所有的class paths下可用.maven工程会将其打包到最终的arifact中.如果你构建一个WAR类型的artefact,那么在compile scope下引用的JAR文件将会被集成到WAR文件内. provided:这个scope假定对应的依赖会由运行这个应用的JDK或者容器来提供.最好的例子就是servlet API.任何在provided scope下定义的依赖在构建时的类路径里是可用的,但是不会被…
在一个maven项目中,如果存在编译需要而发布不需要的jar包,可以用scope标签,值设为provided.如下: <dependency>            <groupId>javax.servlet.jsp</groupId>            <artifactId>jsp-api</artifactId>            <version>2.1</version>            <…