zoukankan      html  css  js  c++  java
  • 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的整体设计是以作为一种语言为导向的,而非成为一个严格死板的框架。
      Ø 免费开源
  • 相关阅读:
    failed to push some refs to 'git@github.com:cq1415583094/MyBatis.git'解决办法
    MyBatis 安装和配置
    MyBatis入门
    LinkedList 源码分析
    ArrayList 源码分析
    什么是注解?
    什么是泛型?
    什么是反射?
    php针对各数据库系统对应的扩展
    DedeCMS文章标题长度最全修改方法
  • 原文地址:https://www.cnblogs.com/wang-jee/p/10479568.html
Copyright © 2011-2022 走看看