gradle和maven的区别, gradle和maven有什么区别?不知道小伙伴们今天来看看边肖的分享吧!
1.基本配置信息的差异:
Maven使用。pom文件,基于XML,gradle使用。gradle文件,基于Groovy,gradle去掉了maven中需要修复的groupId、artfactId、package等基本参数。
用Apply plugin: java、apply plugin: war来表示打包方式,还提供了一些sourceCompatibility、version等实用标签。
2、依赖管理的区别:
Gradle的jar包管理既支持maven下的Repository模式,也支持Ant的Ivy模式。因为maven的Repository已经很成熟了,所以Gradle兼容Repository非常方便。
Define the expert's repository:
mavenLocal() :maven本地库
mavenCentral() : maven远程库
MavenRepo urls:自定义库路径
Maven通过groupId、name和version在已配置的存储库中的指定依赖项中查找Jar包。Gradle的生命周期比较复杂,但是也支持Maven依赖中的build生命周期。
Compile、runtime、testCompile和testRuntime分别对应项目不同阶段的依赖关系。它还简化了maven的配置命令。
Maven:
dependency
groupIdjunit/groupId
artifactIdjunit/artifactId
version4.7/version
scopetest/scope
/dependency
Gradle:
dependencies { testCompile group:junit, name: junit, version 4.11}
或者
dependencies { testCompile junit:junit:4.11 }
如果需要引用lib目录中的jar包,maven需要用scope和systemPath标记每个依赖项,或者在插件中单独添加编译路径。格雷尔只需要加上
Compile fileTree (directory: libs, including: *. Can), in multiple paths:
jarTree=fileTree(dir: libs, include: *.jar)
rootTree=new File(rootProject.rootDir, libs).getAbsolutePath()
jarTree +=fileTree(dir: rootTree, include: *.jar)
compile jarTree
在依赖相关的命令行方面,gradle与maven相似,maven常用的分析依赖命令包括:
Mvn correlation: analyze and view dependencies;
Mvn依赖关系:查看项目的直接和传递依赖关系的树;
Mvn Help: Effective -pom View Effective pom
使用gradle中的gradle dependencies查看项目中的包的依赖关系。添加-配置以查看指定阶段的依赖关系。
您还可以使用-dependency来查看指定jar的依赖项。
3、多项目管理的差异:
在实践中,经常需要管理一个以上的项目。maven使用了依赖、继承和组合的概念,在父模块中指定了自己的子模块,并准备了一些每个子模块共有的资源,比如插件、配置信息等等。
通过将打包的模块与实现特定功能的模块分开来管理多个项目。Gradle在这方面已经讲得越来越清楚了,也很容易学会gradle的多项目管理。在eclipse中安装Gradle插件后,
创建一个新的Gradle项目并选择flat-java-multiproject。生成的项目是多项目管理的一个例子。
Gradle通过settings.gradle文件指定项目的子项目。在构造的初始化阶段,
Gradle将根据settings.gradle文件判断构造中包含哪些子项目,并为每个子项目初始化一个project对象。
在构建脚本中,通过Project ('sub-project-name ')引用子项目对应的项目对象。多项目配置很多,我就简单描述一下常见的配置共享和配置独占。
AllProjects属性返回project对象及其所有子项目。
subProjects属性返回该项目的所有子项目。
项目('子项目名称')来设置相应子项目的配置。
Configure (subprojects.findall {it.name.contains (XXX)}) to find the subprojects that meet the requirements.
在子项目的build.gradle文件中添加您自己的独特配置。
4、任务机制差异:
与ant相比,Maven只通过插件提供任务机制,自由度相对较小,难以扩展。每个函数都需要通过编写插件来定义,Ant使用tagret标签echo来指定命令。
Gradle使用groovy语言,有自己的task概念,更接近ant使用的build文件。任务代表一个逻辑执行单元。
Gradle写任务的方法有很多,相关的例子在网上也很容易搜到。这里,简要描述了一些关于该任务的实用命令和一个常用任务:
Task listJars(description: Display compile jars.) {
configurations.compile.each { File file - println file.name }
gradle和maven的区别,以上就是本文为您收集整理的gradle和maven的区别最新内容,希望能帮到您!更多相关内容欢迎关注。