首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件开发 >

gradle汉语言(1)

2012-07-01 
gradle中文(1)一、声明dependency??? 在build.gradle文件编辑以下代码:apply plugin: javarepositories {

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)dependencies { compile group: 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任务。

    ?

    ?

  • 热点排行