您的位置:首页 > 教程 > Linux > Java中的maven和gradle的比较与使用详解

Java中的maven和gradle的比较与使用详解

2022-04-21 12:19:13 来源:易采站长站 作者:

Java中的maven和gradle的比较与使用详解

目录
1 构建工具的简单介绍2 maven、gradle的简单使用方法2.1 创建maven项目2.2 maven的使用2.3 gradle的使用3 总结

1 构建工具的简单介绍

在代码世界中有三大构建工具,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')
}

2 maven、gradle的简单使用方法

2.1 创建maven项目

想要创建maven项目,首先我们需要搭建maven环境
以eclipse为例来搭建maven环境并创建maven项目

2.1.1 安装eclipse

这一步很简单,就不再阐述

2.1.2 安装maven

首先进入maven官网,下载maven,我下载的是3.5

下载红色圈中的

下载完后,解压到本地磁盘中,我解压到了D:ProjectJavaapache-maven-3.5.0。
为了方便起见,把maven配置到系统路径中,新建一个名为MAVEN_HOME的系统变量

系统变量

然后再在Path中添加%MAVEN_HOME%in

这里写图片描述

2.1.3 配置maven

maven的默认仓库位置是当前用户工作目录下的“.m2/repository”,我们将位置换到C盘外的位置。通过修改Maven安装目录下的conf子目录中settings.xml,添加一条下面的语句
<localRepository>D:/m2/repository</localRepository>
将中间的值替换成你自己的想要存放的位置
同时还可以添加中央仓库的镜像
在中添加

<mirror>    
    <!--This sends everything else to /public -->
    <id>nexus</id>
    <mirrorOf>*</mirrorOf>          <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
</mirror>
<mirror>
      <!--This is used to direct the public snapshots repo in the 
          profile below over to a different nexus group -->
      <id>nexus-public-snapshots</id>
      <mirrorOf>public-snapshots</mirrorOf> 
      <url>http://maven.aliyun.com/nexus/content/repositories/snapshots/</url>
</mirror>

最后复制一份settings.xml到D:/m2中去,我的仓库是D:/m2/repository,换成你自己的位置

2.1.4 eclipse安装m2eclipse插件

Eclipse默认不支持Maven。需要给它添加m2eclipse插件。下面是具体的操作步骤。
依次选择Eclipse菜单栏的“Help”菜单“Instance NewSoftWare”菜单项,就会弹出如下对话窗口:

这里写图片描述

选择“Add…”按钮,又会弹出如下对话框:

这里写图片描述

这个对话框就是用于添加一个插件地址的。在“Name”对应的输入框里输入该操作的一个标识名。在“Location”对应的输入框里输入这个插件的安装地址。注:Maven的Eclipse插件地址为:http://download.eclipse.org/technology/m2e/releases。输入后,如下图所示:

这里写图片描述

输入完成后,点击右下角的“OK”按钮,就会弹出如下对话框:

这里写图片描述

这里需要选择想要安装的插件的详细内容。选中“Maven Integration for Eclipse”前面的复选框。如下图所示:

这里写图片描述


选择完成后,点击右下方的“Next>”按钮进行安装。安装成功后,会提示需要重启Eclipse来生效这次配置。重启之后,这个Eclipse就可以使用m2eclipse插件功能了。

2.1.5 m2eclipse插件设置

依次选择Eclipse菜单栏的的”Window”“Preferences”菜单项,就会弹出如下对话框:

这里写图片描述

在这个对话框左边的导航栏中展开“Maven”目录结点,并选择“Installations”子节点,通过”Add”来添加maven。如下图所示:

这里写图片描述

设置自定义的本地仓库,选择如上图对话窗口左边菜单树 “Maven”节点下的“UserSettings”子节点,修改Global Settings以及User Settings如下图所示:

这里写图片描述

2.1.6 创建maven项目

m2eclispe插件中默认提供了一些Maven样板项目,可以使用这些样板来创建符合我们要求的项目。具体操作如下步骤:
在eclipse菜单栏中选择“File”“News”“Other”菜单项,就会打开如下对话窗口,在窗口中选择“Maven”节点下“Maven Project”条目,如下图所示:

这里写图片描述

点击“Next>”按钮,进入如下窗口:

这里写图片描述

再次选择“Next >”按钮,进入如下窗口:

这里写图片描述

在这个窗口中选择“maven-archetype-webapp”来创建一个Maven的web项目,再选择“Next>”按钮,进入如下图窗口:

这里写图片描述

在上图窗口的“Group Id”中输入项目的基本包名,在“Artifact Id”中输入项目名,其它输入框不用理会。点击“Finish”按钮来完成项目的整个创建过程。
创建完成后的maven的web项目,可以转化成正常的javaweb工程。 教你如何用Eclipse创建一个Maven项目

2.2 maven的使用

2.2.1 maven简述

maven的配置核心是.pom(Project Object Model)文件,其中包含了项目的基本信息、构建工程、环境信息、依赖信息等。以下面的代码为例

<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
             http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>com.vs</groupId>
    <artifactId>com.vs.maven.gradle</artifactId>
    <version>1.0</version>
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>1.2.6.RELEASE</version>
    </parent>

    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-security</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-jpa
            </artifactId>
        </dependency>
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>5.1.25</version>
        </dependency>
    </dependencies>

    <properties>
        <java.version>1.8</java.version>
    </properties>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>
</project>

这个例子构建了一个简单的spring-boot项目,最开始定义了一些项目的基本信息,包括组名、制品名、版本等。arent标签表示我们继承了一个spring定义的一个制品的配置,这样我们不需要配置很多依赖的版本就可以引入依赖。dependencies标签间配置该项目所依赖的其他制品,分别配置每个依赖制品的groupId, artifactId和version。当我们执行mvn insall时,maven就会自动下载依赖,并帮我们将它编译打包放入本地仓库之中。我们就可以在用户目录下的.m2文件夹中找到我们的制品。

2.2.2 maven构建生命周期管理

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

package sample.plugin;

import org.apache.maven.plugin.AbstractMojo;
import org.apache.maven.plugin.MojoExecutionException;
import org.apache.maven.plugins.annotations.Mojo;

/**
 * Says "Hi" to the user.
 *
 */
@Mojo( name = "sayhi")
public class GreetingMojo extends AbstractMojo
{
    public void execute() throws MojoExecutionException
    {
        getLog().info( "Hello, world." );
    }
}

-2 定义pom文件

<project>
  <modelVersion>4.0.0</modelVersion>

  <groupId>sample.plugin</groupId>
  <artifactId>hello-maven-plugin</artifactId>
  <version>1.0-SNAPSHOT</version>
  <packaging>maven-plugin</packaging>

  <name>Sample Parameter-less Maven Plugin</name>

  <dependencies>
    <dependency>
      <groupId>org.apache.maven</groupId>
      <artifactId>maven-plugin-api</artifactId>
      <version>2.0</version>
    </dependency>

    <!-- dependencies to annotations -->
    <dependency>
      <groupId>org.apache.maven.plugin-tools</groupId>
      <artifactId>maven-plugin-annotations</artifactId>
      <version>3.4</version>
      <scope>provided</scope>
    </dependency>
  </dependencies>
</project>

-3 在项目pom文件目录运行install命令将插件安装到本地仓库
-4 在使用插件的项目中加入配置

 <build>
    <plugins>
      <plugin>
        <groupId>sample.plugin</groupId>
        <artifactId>hello-maven-plugin</artifactId>
        <version>1.0-SNAPSHOT</version>
      </plugin>
    </plugins>
  </build>

-5 执行,即可完成Hello,world的输出

mvn groupId:artifactId:version:goal

制品发布
Maven要发布制品,只需要配置远程仓库的参数:

  <distributionManagement>
    <repository>
      <id>internal</id>
      <name>Internal Release Repository</name>
      <url>http://repository.springsource.com/maven/bundles/release</url>
    </repository>
  </distributionManagement>

2.3 gradle的使用

2.3.1 gradle简述

Gradle是一个基于Apache Ant和Apache Maven概念的项目自动化构建工具。它使用一种基于Groovy的特定领域语言(DSL)来声明项目设置,抛弃了基于XML的各种繁琐配置。
面向Java应用为主。当前其支持的语言限于Java、Groovy和Scala,计划未来将支持更多的语言。

2.3.2 gradle引用第三方类库

以android studio为例,使用gradle引用第三方library类库
在android studio中,不需要额外添加或者下载插件,创建一个android项目后,在项目中会创建两个build.gradle文件,分别属于本工程和本Module。我们要使用哪个第三方的库,就在属于module下的build.gradle中添加相应的依赖,一般是几行语句。
你不需要手动去下载、导入它们 。gradle的依赖管理能力极其强大,几乎所有的开源项目都可以简单的通过一条compile指令完成依赖的配置,比如在我的项目中用到了umeng分析,volley,googleprogressbar……,我的dependencies如下:

dependencies {    
    compile fileTree(dir: 'libs', include: ['*.jar'])  
    compile 'com.android.support:appcompat-v7:21.0.2'    
    compile 'com.jpardogo.flabbylistview:library:+'    
    compile 'com.jpardogo.googleprogressbar:library:+'
    compile 'com.mcxiaoke.volley:library:1.0.+'   
    compile 'com.jakewharton:butterknife:6.0.0'    
    compile 'com.umeng.analytics:analytics:5.2.4'
} 

一般github上的项目都会提供一条类似的指令,你可以在你的项目的build.gradle的dependencies块中添加就ok,这样在你运行gradle脚本时,gradle会自己完成依赖的下载,依赖添加。

2.3.3 gradle入门教程

Gradle学习系列之一——Gradle快速入门

3 总结

总的来说,gradle相比于maven有很打的灵活性,目前gradle的使用者越来越多。而由于maven之前处于主流,并且在某些方面maven较gradle还有一些优点,所以maven和gradle并存。在github上大多数优秀的开源项目会同时提供maven和gradle两种添加依赖的方式。

引用资料:
1.使用Eclipse构建Maven项目 (step-by-step)
2.Java构建工具:Maven与Gradle的对比
3.Maven和Gradle对比
4.gradle百度百科

到此这篇关于Java中的maven和gradle的比较与使用的文章就介绍到这了,更多相关maven和gradle的比较与使用内容请搜索易采站长站以前的文章或继续浏览下面的相关文章希望大家以后多多支持易采站长站!

如有侵权,请联系QQ:279390809 电话:15144810328

相关文章

  • Ubuntu 18.04 LTS中配置IP地址的完整步骤

    Ubuntu 18.04 LTS中配置IP地址的完整步骤

    前言 在 Ubuntu 18.04 LTS 中配置 IP 地址的方法和以往使用的配置方法有很大的不同。和旧版本的不同之处在于,Ubuntu 18.04 使用 Netplan 来配置 IP 地址,Netplan 是一个新的命令行网络配置工具
    2019-10-09
  • VS2010破解版迅雷电驴下载 visual studio2010简体中文正式旗舰版破解

    VS2010破解版迅雷电驴下载 visual studio2010简体中文正式旗舰版破解

    Microsoft Visual Studio 2010 旗舰版(vs2010中文旗舰版下载)是微软公司推出的开发环境。VS2010是目前最流行的Windows平台应用程序开发环境。VS2010支持最新的.Net Framework 4框架,支持64位Windows,支
    2019-10-08
  • eclipse使用教程(图文)

    eclipse使用教程(图文)

    很多人都知道要用eclipse来做java开发,但很多的新手朋友却不知道怎么下载和安装eclipse。 下面给你介绍一下怎么下载和安装eclipse来用于自己的学习或者项目开发。 方法/步骤 1、进入官
    2019-10-07
  • JDK1.6的下载、安装与配置图文详细教程 推荐

    JDK1.6的下载、安装与配置图文详细教程 推荐

    一、下载 首先要下载JDK的最新版本。我们可以在SUN公司的官方网站上下载:http://java.sun.com。 如果感觉比较麻烦可以到易采站长站网站下载,下载地址 https://www.jb51.net/softs/75724.html进入官
    2019-10-08
  • navicat for mysql怎么注册?navicat11全系列破解教程(附注册码)

    navicat for mysql怎么注册?navicat11全系列破解教程(附注册码)

    Navicat是一款数据库管理工具,它是专为简化数据库的管理及降低系统管理成本而设的。它是以直觉化的图形用户界面而建的,让你可以以安全并且简单的方式创建、组织、访问并共用信
    2019-10-08
  • 使用eclipse搭建c/c++开发环境的详解步骤

    使用eclipse搭建c/c++开发环境的详解步骤

    说明:网上有很多类似教程,但基本上都是很老版本的Eclipse,新版的Eclipse变化太多,网上很多教程都是错误或者多余的,所以特写此教程避免更多人走弯路。 软件准备:JDK_v1.6,Ecli
    2019-10-07
  • Notepad++怎么对比文件?notepad 两个文件代码对比的教程

    Notepad++怎么对比文件?notepad 两个文件代码对比的教程

    在实际的工作中,我们会对编辑的两个文件进行比较,已查看了两个文件存在的区别,已对文件做更好的修改,找出那些不同的内容,已得到快速编辑的效果。那么在notepad中就提供了一
    2019-10-07
  • keil uvision5最新破解安装详细教程(附注册机)

    keil uvision5最新破解安装详细教程(附注册机)

    uVision是一个KEIL公司开发的集成开发环境(IDE),目前最新的版本是uVision5。Keil MDK:也称MDK-ARM、Realview MDK、I-MDK、KEIL MDK-ARM、KEIL ARM、uVision5(老版本为uVision4和uVision3)等,它是德国知名软
    2019-10-08