gradle系列--插件

簡介

其他網址

Gradle Gradle 插件_w3cschool

Gradle Plugins · Gradle User Guide 中文版

Gradle Plugin Reference(官網文檔)

Gradle 插件簡介

Gradle 在它的核心中有意地提供了一些小但有用的功能,用於在真實世界中的自動化。所有有用的功能,例如以能夠編譯 Java 代碼爲例,都是通過插件進行添加的。插件添加了新任務 (例如JavaCompile),域對象 (例如SourceSet),約定(例如主要的 Java 源代碼是位於 src/main/java),以及擴展的核心對象和其他插件的對象。

寫法

法1:apply plugin: 'java'

法2:

plugins {
    id 'java'
    id 'xxx', version '1.0'
}

或者

plugins {
    'java'
    id 'xxx' version '1.0'
}

法3:apply plugin: org.gradle.api.plugins.JavaPlugin       //或者apply plugin: JavaPlugin

常用插件

apply plugin: 'maven': 使用maven做爲jar包的信賴管理,通過mave倉庫下載項目所需的信賴包 
apply plugin: 'war':指定web項目,項目編譯(在項目提示符下執行:gradle build)時生成項目的war包。 
apply plugin: 'java': 指定項目爲java項目,項目編譯(在項目提示符下執行:gradle build)時生成項目的jar包。 
apply plugin: 'idea':java項目的idea開發環境構建。生成所需要的.project,.classpath等文件。 
apply plugin: 'eclipse':java項目的eclipse開發環境構建。生成所需要的.idea,.impl等文件。 
apply plugin: 'eclipse-wtp':插件將構建web項目的開發環境,生成所需要的.project,.classpath等文件。若web開發使用的是eclipse-j2ee版本,要指定爲wtp環境。 
apply plugin: 'jetty':加入jetty的支持,代碼修改後直接執行命令gradle jettyRun即可運行web項目。

插件倉庫

插件默認是從 Gradle 官方的插件倉庫 https://plugins.gradle.org/m2/ 下載的。修改倉庫地址方法

法1:修改settings.gradle

pluginManagement {
    repositories {
        maven {
            url 'http://examle.com/maven-repo'
        }
        gradlePluginPortal()
    }
}

法2:修改buildscript

buildscript {
    repositories {
        maven {
            url 'http://examle.com/maven-repo'
        }
    }
    dependencies {
        classpath 'com.example.plugin:gradle-plugin:1.0'
    }
}
 
apply plugin: 'com.example.plugin'

java

目錄是有默認值存在,建議項目的配置,承襲了maven的風格

java的源碼目錄:src/main/java
java的測試代碼目錄:src/test/java
資源文件目錄:src/main/resources
測試的資源目錄:src/test/resources

sourceCompatibility 與 targetCompatibility

  1. sourceCompatibility關係到你使用到的Java語法特性及庫
  2. sourceCompatibility不能比targetCompatibility
  3. targetCompatibility不能比目標客戶端運行環境的JavaVersion
  4. targetCompatibility不能比當前Gradle使用的JavaVersion

application

其他網址

The Application Plugin(官網文檔)

簡介

        application插件是用來幫助創建可執行jvm程序的。它使得開發中在本地啓動應用和把應用打包爲tar 和/或 zip更簡單。
使用application插件,默認會調用java和distribution插件。(因此,項目中寫了application就不用再寫這兩個插件了)

實例說明

本處用application來說明比java插件的好處(可以打包文件)。

1.Idea創建普通gradle工程

2.編寫源碼

package org.example.a;

import lombok.AccessLevel;
import lombok.Getter;
import lombok.Setter;

class User {
    @Getter @Setter
    private int id;

    @Getter(AccessLevel.PROTECTED)
    private String phone;

    private String password;
}

public class Demo {
    public static void main(String[] args) {
        User user = new User();
        user.setId(2);
        System.out.println(user.getId());
        System.out.println("This is main");
    }
}

3.修改build.gradle

plugins {
    id 'application'
}

group 'com.example'
version '1.0-SNAPSHOT'

sourceCompatibility = 1.8

repositories {
    //本地倉庫,地址是maven本地倉庫路徑
    mavenLocal()
    //maven私服,此處設置爲ali的,地址是url
    maven{
        url "http://maven.aliyun.com/nexus/content/groups/public"
    }
    //遠程倉庫,地址是https://repo1.maven.org/maven2
    mavenCentral()
}

dependencies{
    //本處應該是compileOnly。但我刻意將其寫爲compile,以將其放到打包階段
    compile 'org.projectlombok:lombok:1.18.8'
    annotationProcessor 'org.projectlombok:lombok:1.18.8'
}

mainClassName = 'org.example.a.Demo'

jar {
    manifest {
        attributes 'Main-Class': 'org.example.a.Demo'
    }
}

3.build

結果:在build目錄下產生很多文件。相對於java插件,多了個distributions路徑

 庫:

腳本文件:

4.測試

運行方法1:

去build/libs目錄,執行java -jar test_gradle-1.0-SNAPSHOT.jar

結果:

2
This is main

運行方法2:

到build/distribution目錄,解壓test_gradle-1.0-SNAPSHOT.tar或者test_gradle-1.0-SNAPSHOT.zip,然後到目錄裏邊的bin路徑下,命令行執行test_gradle

結果

2
This is main

war

其他網址

The War Plugin(官網文檔)

ear

其他網址

The Ear Plugin(官網文檔)

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章