Building Tool(Maven/Gradle)

构建工具的简单介绍

在代码世界中有三大构建工具,ant、Maven和Gradle。现在的状况是maven和gradle并存,gradle使用的越来越广泛。Maven使用基于XML的配置,Gradle采用了领域特定语言Groovy的配置。在Maven中要引入一个依赖,如下面的例子:

<properties>
<kaptcha.version>2.3</kaptcha.version>
</properties>
<dependencies>
<dependency>
<groupId>com.google.code.kaptcha</groupId>
<artifactId>kaptcha</artifactId>
<version>${kaptcha.version}</version>
<classifier>jdk15</classifier>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-beans</artifactId>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
</dependency>
</dependencies>

而想要在gradle中达到相同的效果,代码如下:

dependencies {
compile(‘org.springframework:spring-core:2.5.6‘)
compile(‘org.springframework:spring-beans:2.5.6‘)
compile(‘org.springframework:spring-context:2.5.6‘)
compile(‘com.google.code.kaptcha:kaptcha:2.3:jdk15‘)
testCompile(‘junit:junit:4.7‘)
}

Maven

  Maven项目对象模型(POM),可以通过一小段描述信息来管理项目的构建,报告和文档的项目管理工具软件。

  Maven 除了以程序构建能力为特色之外,还提供高级项目管理工具。由于 Maven 的缺省构建规则有较高的可重用性,所以常常用两三行 Maven 构建脚本就可以构建简单的项目。由于 Maven 的面向项目的方法,许多 Apache Jakarta 项目发文时使用 Maven,而且公司项目采用 Maven 的比例在持续增长。

Maven这个单词来自于意第绪语(犹太语),意为知识的积累,最初在Jakata Turbine项目中用来简化构建过程。当时有一些项目(有各自Ant build文件),仅有细微的差别,而JAR文件都由CVS来维护。于是希望有一种标准化的方式构建项目,一个清晰的方式定义项目的组成,一个容易的方式发布项目的信息,以及一种简单的方式在多个项目中共享JARs。

maven构建生命周期管理

除了依赖管理以外,构建工具的另一个主要用途就是构建的生命周期管理。
Maven有三个生命周期,每个生命周期又分为多个阶段:
- Clean:包含3个阶段,与清理上次构建生成的文件相关
- Default:Maven的核心生命周期,包含多个阶段如预处理、编译、测试、打包、安装到本地仓库、发布到远程仓库等。
- Site: 包含4个阶段,与生成项目报告,站点,发布站点相关。
这些生命周期都是系统自定义好的,如果我们需要修改现有的构建生命周期的话,我们就要编写一个Maven插件。因为Maven是通过插件发来完成大多数的构建任务。每个插件可以绑定一个生命周期。配置好绑定生命周期后,我们需要定义插件的任务,在Maven中每个任务的goal称作Mojo,每个Mojo我们都需要实现org.apache.maven.plugin.Mojo接口。也就是我们需要定义一个类来实现这个接口。使用时我们需要引入这个插件,并配置需要执行的goal。

Gradle Building Tool

  Gradle构建工具是一个开放源码的构建系统,被数百万开发人员使用。Gradle是世界上一些最先进的软件公司(包括LinkedIn、Netflix等)持续交付渠道的核心。

  Gradle是一个基于Apache Ant和Apache Maven概念的项目自动化构建开源工具。它使用一种基于Groovy的特定领域语言(DSL)来声明项目设置,抛弃了基于XML的各种繁琐配置。

  面向Java应用为主。当前其支持的语言限于Java、Groovy、Kotlin和Scala,计划未来将支持更多的语言。

gradel的功能:

  Ø gradle对多工程的构建支持很出色,工程依赖是gradle的第一公民。

  Ø gradle支持局部构建。
  Ø 支持多方式依赖管理:包括从maven远程仓库、nexus私服、ivy仓库以及本地文件系统的jars或者dirs

  Ø gradle是第一个构建集成工具,与ant、maven、ivy有良好的相容相关性。

  Ø 轻松迁移:gradle适用于任何结构的工程,你可以在同一个开发平台平行构建原工程和gradle工程。通常要求写相关测试,以保证开发的插件的相似性,这种迁移可以减少破坏性,尽可能的可靠。这也是重构的最佳实践。

  Ø gradle的整体设计是以作为一种语言为导向的,而非成为一个严格死板的框架。

  Ø 免费开源

原文地址:https://www.cnblogs.com/wang-jee/p/10479568.html

时间: 2024-11-09 00:15:56

Building Tool(Maven/Gradle)的相关文章

Introduction of Build Tool/Maven, Gradle

---恢复内容开始--- 什么是build tool: build tool是可以自动由源代码创建可执行的应用程序的程序. Building 包括编译.链接和打包代码成一个可用的或可执行形式. 在小型项目,开发人员常常会手动调用构建过程.在更大的项目中这是不实用的,那样会很难跟踪需要构建什么,在什么顺序和依赖关系构建的过程. 使用自动化工具允许构建过程更一致. 为什么使用build tool: 日常开发中我们当然不会每次都在终端中使用命令一个个编译执行文件,我们只需要在IDE中点击运行按钮,ID

building tool

1.building tool是什么? Build Tools 即构建工具是一个把源代码生成可执行应用程序的过程自动化的程序(例如Android app生成apk).构建包括编译.连接跟把代码打包成可用的或可执行的形式.构建工具的作用:依赖管理.测试.打包.发布 2.主流的构建工具有? Ant:提供编译测试.打包 Maven:在Ant的基础上提供依赖管理和发布的功能 Gradle:在Maven的基础上使用Groovy管理脚本,不再使用XML来管理 2.为什么用它? 在小型项目,开发人员常常会手动

JAVA Building tool具体指什么?有哪些?它们的作用是什么?

什么是build tool? 项目构建可以理解为一个项目从无到有的一系列操作过程.比如一个Java程序的构建过程就是: 编写源代码 将.java文件编译为.class文件 执行.class文件输出结果 上面的构建过程中需要用到Jdk中的java和javac等命令进行编译和执行. 为什么要使用build tool? 日常开发中我们当然不会每次都在终端中使用命令一个个编译执行文件,我们只需要在IDE中点击运行按钮,IDE就会帮助我们执行构建项目的全过程,但是使用IDE构建有一个很严重的缺陷就是迁移成

Windows下Android Studio长时间停留在Building &quot;Project Name&quot; Gradle project info画面的解决方法

问题描述: 创建好一个Android项目后,Android Studio长时间停留在Building [Project Name] Gradle project info画面不动. 原因: 此时Android Studio在下载gradle-X.XX-all.zip文件,但是下载过程中经常中断,导致重来(不支持断点续传?). 解决办法: 1. 首先查看gradle版本,路径:C:\Users\[用户名]\.gradle\wrapper\dists\gradle-X.XX-all 2. 然后去Gr

android studio 新建项目 界面一直停在 【“building ‘ 项目名’ gradle project info”】

zhezhelin android studio 新建项目 界面一直停在 [“building ‘ 项目名’ gradle project info”] 安装了android studio 之后,按照上文所述的那篇博文下载安装gradle,配置环境变量, 启动android studio,新建项目,发现还是新建不了,界面一直停在 [“building ‘ 项目名’ gradle project info”]: 其实这时候android studio 还是在下载 gradle ,但是由于被墙的原因

maven gradle 混合使用的问题

今天gradle的项目突然出现了问题,找不到gdx-sources.jar //以下为猜想,并未验证 服务器端代码是拿老项目改的,基于maven,改动过程中加入了gdx依赖库 ~/.gradle/caches下有gradle的缓存,构建gradle项目的时候,gdx的相关jar都在这里 后来maven加入gdx,它的库~/.m2/repository中有了gdx的一部分jar,没有gdx-sources.jar!!! 而gradle项目中有mavenLocal(),估计是先去maven库找gdx

JAVA生成(可执行)Jar包的全面详解说明 [打包][SpringBoot][Eclipse][IDEA][Maven][Gradle][分离][可执行]

辛苦所得,转载还请注明: https://www.cnblogs.com/applerosa/p/9739007.html  得空整理了关于java 开发中,所有打包方式的 一个操作方法, 有基于IDE的,有基于构建工具的. 这里还是比较建议新手朋友尽快习惯 maven 和 gradle 等构建工具自带的打包方式. 不是说逼格高,的确是因为不依赖 IDE, 配置好 一两行命令就搞定. 离开IDE 照样出包. 大概分为这几个步骤 一.  关于Jar 包(example.jar) 的 结构/作用/使

Maven Gradle 区别

Maven面临的挑战 软件行业新旧交替的速度之快往往令人咂舌,不用多少时间,你就会发现曾经大红大紫的技术已经成为了昨日黄花,当然,Maven也不会例外.虽然目前它基本上是Java构建的事实标准,但我们也能看到新兴的工具在涌现,比如基于Goovy的Gradle,而去年Hibernate宣布从Maven迁移至Gradle这一事件更是吸引了不少眼球.在此之前,我也听到了不少对Maven的抱怨,包括XML的繁冗,不够灵活,学习曲线陡峭等等.那Gradle是否能够在继承 Maven优点的基础上,克服这些缺

使用intellJ导入非maven,gradle等非构建工程的依赖,发布工程时候的打包详解

一.导入 1.java项目在没有导入该jar包之前,如图: 2.点击 File ->  Project Structure(快捷键 Ctrl + Alt + Shift + s),点击Project Structure界面左侧的"Modules"如图: 3.在 "Dependencies" 标签界面下,点击右边绿色的 "+"号,选择第一个选项"JARs or directories...",选择相应的jar包,点&quo