海诗网 知识百科 gradle和maven的区别(gradle是什么)

gradle和maven的区别(gradle是什么)

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的配置命令。

gradle是什么

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是什么

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文件中添加您自己的独特配置。

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的区别最新内容,希望能帮到您!更多相关内容欢迎关注。

本文来自网络,不代表海诗网立场,转载请注明出处:https://m.hallse.com/n/168928.html
发表回复