易商讯
当前位置: 首页 » 资讯 » 知识 » 正文

gradle和maven的区别(gradle和maven的区别 哪个主流)

放大字体  缩小字体 发布日期:2023-11-14 11:19:41
导读

gradle和maven的区别是什么呢?不知道的小伙伴来看看小编今天的分享吧!1、基础配置信息区别:maven使用.pom文件,基于XML,gradle使用.g...

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的区别 哪个主流

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 ')引用子项目对应的项目对象。多项目配置很多,我就简单描述一下常见的配置共享和配置独占。

AllProjects属性返回project对象及其所有子项目。

subProjects属性返回该项目的所有子项目。

项目('子项目名称')来设置相应子项目的配置。

Configure (subprojects.findall {it.name.contains (XXX)}) to find the subprojects that meet the requirements.

在子项目的build.gradle文件中添加您自己的独特配置。

gradle和maven的区别 哪个主流

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


声明:易商讯尊重创作版权。本文信息搜集、整理自互联网,若有来源标记错误或侵犯您的合法权益,请联系我们。我们将及时纠正并删除相关讯息,非常感谢!

 
(文/小编)
免责声明
• 
本文gradle和maven的区别(gradle和maven的区别 哪个主流)链接:http://www.esxun.cn/news/382120.html 。本文仅代表作者个人观点,请读者仅做参考,如若文中涉及有违公德、触犯法律的内容,一经发现,立即删除,作者需自行承担相应责任。涉及到版权或其他问题,请及时联系我们,我们将在24小时内处理完毕。如涉及作品内容、版权等问题,请在作品发表之日起一周内与本网联系,否则视为放弃相关权利。
 

Copyright © www.esxun.cn 易商讯ALL Right Reserved


冀ICP备2023038169号-3