您的位置:首頁 > 教程 > 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?,F在的狀況是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
色七七影院_香港三级台湾三级在线播放_男人放进女人阳道猛进猛出