昌鑫号

gradle和maven的区别(gradle 和maven)

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本地库

MavenRepo urls:自定义库路径

Compile、runtime、testCompile和testRuntime分别对应项目不同阶段的依赖关系。它还简化了maven的配置命令。

gradle 和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的依赖项。

gradle 和maven

3、多项目管理的差异:

在实践中,经常需要管理一个以上的项目。maven使用了依赖、继承和组合的概念,在父模块中指定了自己的子模块,并准备了一些每个子模块共有的资源,比如插件、配置信息等等。

通过将打包的模块与实现特定功能的模块分开来管理多个项目。Gradle在这方面已经讲得越来越清楚了,也很容易学会gradle的多项目管理。在eclipse中安装Gradle插件后,

创建一个新的Gradle项目并选择flat-java-multiproject。生成的项目是多项目管理的一个例子。

Gradle通过settings.gradle文件指定项目的子项目。在构造的初始化阶段,

Gradle将根据settings.gradle文件判断构造中包含哪些子项目,并为每个子项目初始化一个project对象。

在构建脚本中通过project(‘:sub-project-name’)来引用子项目对应的Project对象。关于多项目配置有非常多,因此就简述一下常用的配置共享以及配置独享。

Allprojects属性,返回该Project对象以及其所有子项目。

subprojects属性,返回该Project所有子项目。

project(‘:sub-project-name’)来设置对应的子项目的配置。

configure(subprojects.findAll {it.name.contains(XXX)})来找符合要求的子项目。

在子项目的build.gradle文件里添加自己独有的配置。

gradle 和maven

4、任务机制区别:

Maven相对于ant相比仅仅通过plugin提供任务机制,相比而言自由度小而且很难扩展,每定义一个功能都需要写一个插件,Ant中使用tagret标签的echo来指定命令,

gradle使用groovy语言,自带task概念,与ant使用的build文件更加接近。一个Task表示一个逻辑上的执行单元。

Gradle编写task的方式有很多,网上也能很容易搜索到相关的例子,在此简述有关task的一些实用命令以及自己一个常用的task:

Task listJars(description: Display compile jars.) {

configurations.compile.each { File file - println file.name }

gradle和maven的区别,以上就是本文为您收集整理的gradle和maven的区别最新内容,希望能帮到您!更多相关内容欢迎关注。

      
上一篇