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(官网文档)

 

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