gradle中文(1)

一、声明dependency

    在build.gradle文件编辑以下代码:

apply plugin: 'java'

repositories {
    mavenCentral()
}

dependencies {
    compile group: 'org.hibernate', name: 'hibernate-core', version: '3.6.7.Final'
    testCompile group: 'junit', name: 'junit', version: '4.+'
}

   以上代码表明:

 (1) compile group:需要依赖Hibernate core 3.6.7.Final来编辑项目的源码,在编译时系统会自动将hibernate的依赖加入进来

 (2)testCompile group:测试代码需要junit4以上的版本来编译

 

二、常用的依赖

 

  (1)compile:编译生产代码的依赖环境,即src/main/下

 

  (2)runtime:生产代码运行时的依赖(包含编译生产代码时的依赖)

 

 

  (3)testCompile:编译测试代码的依赖环境,即src/test下

 

 

  (4)testRuntime:测试代码运行时的依赖(包含编译测试代码时的依赖)

 

三、依赖的配置

 

    通常情况下有两种配置:

(1)使用 “group:name:version”形式来定义dependencies ,如

dependencies {
    compile group: 'org.hibernate', name: 'hibernate-core', version: '3.6.7.Final'
}

(2) 使用缩略形式,如:

  

dependencies {
    compile 'org.hibernate:hibernate-core:3.6.7.Final'
}

 四、如何将相关jar包添加到classpath?

   可以通过buildscript{}中添加依赖的方式,将相关jar包加入到classpath中,如:

buildscript {
    repositories {
        mavenCentral()
    }
    dependencies {
        classpath group: 'commons-codec', name: 'commons-codec', version: '1.2'
    }
}

 

就将commons-codec-1.2.jar加入到classpath中了

 

五、如何定义task 任务?

 

六、gradle plugin的本质?plugin是什么?可要用它来做什么?

  

      gradle的plugin其实就是一个实现了Plugin接口的一个普通类,这个类必须要实现apply方法来执行相关的操作。如:在org.gradle.api.plugins包下,定义个JavaPlugin类

public class JavaPlugin implements Plugin<Project> {
    public static final String PROCESS_RESOURCES_TASK_NAME = "processResources";
    public static final String CLASSES_TASK_NAME = "classes";
    public static final String COMPILE_JAVA_TASK_NAME = "compileJava";
    public static final String PROCESS_TEST_RESOURCES_TASK_NAME = "processTestResources";
    public static final String TEST_CLASSES_TASK_NAME = "testClasses";
    public static final String COMPILE_TEST_JAVA_TASK_NAME = "compileTestJava";
    public static final String TEST_TASK_NAME = "test";
    public static final String JAR_TASK_NAME = "jar";
    public static final String JAVADOC_TASK_NAME = "javadoc";

    public static final String COMPILE_CONFIGURATION_NAME = "compile";
    public static final String RUNTIME_CONFIGURATION_NAME = "runtime";
    public static final String TEST_RUNTIME_CONFIGURATION_NAME = "testRuntime";
    public static final String TEST_COMPILE_CONFIGURATION_NAME = "testCompile";

    public void apply(Project project) {
        project.getPlugins().apply(JavaBasePlugin.class);

        JavaPluginConvention javaConvention = project.getConvention().getPlugin(JavaPluginConvention.class);
        project.getConvention().getPlugins().put("embeddedJavaProject", new EmbeddableJavaProjectImpl(javaConvention));

        configureSourceSets(javaConvention);
        configureConfigurations(project);

        configureJavaDoc(javaConvention);
        configureTest(project, javaConvention);
        configureArchives(project, javaConvention);
        configureBuild(project);
    }
}

 

在定义类后需要对这个plugin类进行相关配置,只有配置之后才能被以“apply plugin:‘java’”形式使用。

首先需要在src\META-INF\目录下建立一个gradle-plugins文件夹,然后在该文件夹下建立一个名为“插件名.properties”文件,如java.properties,文件的内容为定义的plugin类的实现路径,具体内容如下:

implementation-class=org.gradle.api.plugins.JavaPlugin

 通过以上配置,我们就可以在build.gradle中明目张胆的使用:

apply plugin: 'java'

 

以后有机会将会详细来剖析 javaplugin这一gradle base plugin

     plugin通常可以用来做以下事情:

Add tasks to the project (e.g. compile, test) Pre-configure added tasks with useful defaults. Add dependency configurations to the project Add new properties and methods to existing type via extensions.

 

 

七、编写plugin的方法

      通常有三种方法:

   (1)在buildscript中编写plugin,这样编写的plugin只能用在当前项目中,不能被重用

   (2)buildsrc中编写plugin。在“rootProjectDir/buildSrc/src/main/groovy ”目录中用groovy编写plugin,

      在buildSrc目录下编写 build.gradle文件来对这个plugin进行说明

   (3)独立的项目。将plugin写成一个独立的项目,然后发布成一个jar包供多个项目来使用。这个jar包中也可以包含多个task任务。

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值