gradle(转)

摘要:
您可以通过在buildscript{}中添加依赖项将相关jar包添加到类路径中,例如:Java代码buildscript{存储库{mavenCentral()}依赖项{classpathgroup:“commons code”,名称:“commons code”,版本:“1.2”}}?gradle的插件实际上是一个实现插件接口的公共类。此类必须实现apply方法才能执行相关操作。

一、声明dependency

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

Java代码  收藏代码
  1. apply plugin: 'java'  
  2.   
  3. repositories {  
  4.     mavenCentral()  
  5. }  
  6.   
  7. dependencies {  
  8.     compile group: 'org.hibernate', name: 'hibernate-core', version: '3.6.7.Final'  
  9.     testCompile group: 'junit', name: 'junit', version: '4.+'  
  10. }  

   以上代码表明:

 (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 ,如

Java代码  收藏代码
  1. dependencies {  
  2.     compile group: <span class="hl-string">'org.hibernate'</span>, name: <span class="hl-string">'hibernate-core'</span>, version: <span class="hl-string">'3.6.7.Final'</span>  
  3. }  

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

  

Java代码  收藏代码
  1. dependencies {  
  2.     compile 'org.hibernate:hibernate-core:3.6.7.Final'  
  3. }  

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

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

Java代码  收藏代码
  1. buildscript {  
  2.     repositories {  
  3.         mavenCentral()  
  4.     }  
  5.     dependencies {  
  6.         classpath group: 'commons-codec', name: 'commons-codec', version: '1.2'  
  7.     }  
  8. }  

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

五、如何定义task 任务?

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

  

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

Java代码  收藏代码
  1. public class JavaPlugin implements Plugin<Project> {  
  2.     public static final String PROCESS_RESOURCES_TASK_NAME = "processResources";  
  3.     public static final String CLASSES_TASK_NAME = "classes";  
  4.     public static final String COMPILE_JAVA_TASK_NAME = "compileJava";  
  5.     public static final String PROCESS_TEST_RESOURCES_TASK_NAME = "processTestResources";  
  6.     public static final String TEST_CLASSES_TASK_NAME = "testClasses";  
  7.     public static final String COMPILE_TEST_JAVA_TASK_NAME = "compileTestJava";  
  8.     public static final String TEST_TASK_NAME = "test";  
  9.     public static final String JAR_TASK_NAME = "jar";  
  10.     public static final String JAVADOC_TASK_NAME = "javadoc";  
  11.   
  12.     public static final String COMPILE_CONFIGURATION_NAME = "compile";  
  13.     public static final String RUNTIME_CONFIGURATION_NAME = "runtime";  
  14.     public static final String TEST_RUNTIME_CONFIGURATION_NAME = "testRuntime";  
  15.     public static final String TEST_COMPILE_CONFIGURATION_NAME = "testCompile";  
  16.   
  17.     public void apply(Project project) {  
  18.         project.getPlugins().apply(JavaBasePlugin.class);  
  19.   
  20.         JavaPluginConvention javaConvention = project.getConvention().getPlugin(JavaPluginConvention.class);  
  21.         project.getConvention().getPlugins().put("embeddedJavaProject", new EmbeddableJavaProjectImpl(javaConvention));  
  22.   
  23.         configureSourceSets(javaConvention);  
  24.         configureConfigurations(project);  
  25.   
  26.         configureJavaDoc(javaConvention);  
  27.         configureTest(project, javaConvention);  
  28.         configureArchives(project, javaConvention);  
  29.         configureBuild(project);  
  30.     }  
  31. }  

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

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

Java代码  收藏代码
  1. implementation-class=org.gradle.api.plugins.JavaPlugin  

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

Java代码  收藏代码
  1. 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任务。

http://hougbin.iteye.com/blog/1459159

1、能够识别第一层的依赖jar包和传递依赖(transitive dependency)

2、jar包冲突解决

   (1)使用gradle强制配置一级依赖

   (2)强制配置传递依赖

 http://stackoverflow.com/questions/27056733/change-gradle-mavencentral-url-to-my-repo/27058232#27058232

免责声明:文章转载自《gradle(转)》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Spring MVC-表单(Form)标签-隐藏字段(Hidden Field)示例(转载实践)PHP漏洞之session会话劫持下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

关于Gradle配置的小结

前言 使用 Android Studio 来开发 Android 工程的过程中,接触 Gradle 是不可避免的,比如配置签名、引入依赖等。那么 Gradle 到底是什么东西呢? Gradle 是一个基于 Apache Ant 和 Apache Maven 概念的项目自动化建构工具。它使用一种基于 Groovy 的特定领域语言 (DSL) 来声明项目...

Gradle 配置国内镜像

选择一:项目级配置(推荐) 找到项目中的如下文件:build.gradle 在项目的根目录下找到如下文件:build.gradle,打开编辑,在下图红色箭头处添加阿里云的镜像。 添加如下代码: maven {url 'http://maven.aliyun.com/nexus/content/groups/public/'} 在 apply 上面,添加...

Gradle 实战(1)—— 配置环境变量

背景:Gradle 是一款构建工具,继 Ant 、Maven 之后的现代构建工具,我会在接下来的博文中陆续介绍,我在工作中是如何使用 Gradle 的。 下载 Gradle 下面是 Gradle 的官方网站地址: Gradle l Modern Open-Source Enterprise Build Automation - Gradle http:...

将Eclipse代码导入到AndroidStudio的两种方式

说到使用AndroidStudio,除了新建的项目,我们都会面临的问题是原先Eclipse的代码该怎么导入到AndroidStudio中使用。这方面相关的资料还比较少,自己摸索了一下,总结出这篇博客,希望能让开发者少走些弯路。OK,进入正题。 Google为了让我们更加方便的使用AndroidStudio,提供了两种导入Eclipse代码的方式:一种兼容...

导入Android Studio 项目报 invalid gradle jdk configuration found

转自:http://blog.csdn.net/pdskyzcc1/article/details/48521667 从Git.oschina.com上clone下来代码后,直接Android Studio open,而不是用import的方式,Android Studio 不识别,因为缺少.iml配置文件。 这时不要慌,用import的方法再次打开项目...

Android Studio最新配置教程2016

http://blog.csdn.net/wen_demo 一、Android studio 基本简单介绍 1.Android studio和Eclipse的差别: 1、Studio中有Project和Module的概念,Studio中一个窗体仅仅能有一个项目,即Project,代表一个workspace。可是一个Project能够包括多个Modul...