[Gradle中文教程系列]-跟我学Gradle-3:快速入门,了解创建和指定Gradle项目的标准目录结构

本文基于gradle2.12版本

标准结构

Gradle遵循COC(convention over configuration约定优于配置)的理念,默认情况下提供了与maven相同的项目结构配置
大体结构如下

  • project root
    • src/main/java(测试)
    • src/main/resources
    • src/test/java(测试源码目录)
    • src/test/resources(测试资源目录)
    • src/main/webapp(web工程)

创建标准结构

好在,Gradle提供了一些内置初始化任务,可以方便的为我们生成默认的目录结构以及示例代码,如下命令会产生如下效果

  • 应用java插件
  • 应用jcenter()仓库
  • 采用JUnit测试框架
  • 创建标准目录结构
  • 包含一份示例代码

“java-library使用示例”

//创建一个java项目,默认使用Junit测试框架
gradle init --type java-library 
//使用spock替代junit
gradle init --type java-library --test-framework spock
//使用testng替代junit
gradle init --type java-library --test-framework testng

“scala-library使用示例”
gradle init --type scala-library

  • 应用scala插件
  • 应用jcenter()仓库
  • 采用scala2.10
  • 应用ScalaTest测试框架
  • 采用JUnit测试框架
  • 创建标准目录结构
  • 包含一份示例代码
  • 使用 Zinc Scala 编译器

“groovy-library使用示例”
gradle init --type groovy-library

  • 应用groovy插件
  • 应用jcenter()仓库
    • 采用scala2.x
  • 采用Spock测试框架
  • 创建标准目录结构
  • 包含一份示例代码

非标准结构配置

在一些老项目上,可能目录结构并不是标准结构,然而一般开发人员又不好进行结构调整.此时可以通过配置sourceSet来指定目录结构

sourceSets {
    main {
        java {
            srcDir 'src/java'
        }
        resources {
            srcDir 'src/resources'
        }
    }
}

或者采用如下写法也是可以的

sourceSets {
    main.java.srcDirs = ['src/java']
    main.resources.srcDirs = ['src/resources']
}

在android中

android {
    sourceSets {
        main {
            manifest.srcFile 'AndroidManifest.xml'
            java.srcDirs = ['src']
            resources.srcDirs = ['src']
            aidl.srcDirs = ['src']
            renderscript.srcDirs = ['src']
            res.srcDirs = ['res']
            assets.srcDirs = ['assets']
        }

        androidTest.setRoot('tests')
    }
}

当然如果你的资源目录与源码目录相同这样就比较....了,但你仍然可以按照如下方式搭配includeexclude进行指定

sourceSets {
  main {
    java {
      //your java source paths and exclusions go here...
    }

    resources {
      srcDir 'main/resources'
      include '**/*.properties'
      include '**/*.png'


      srcDir 'src'
      include '**/Messages*.properties'
      exclude '**/*.java'
    }
  }
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,937评论 18 139
  • Spring Boot 参考指南 介绍 转载自:https://www.gitbook.com/book/qbgb...
    毛宇鹏阅读 46,958评论 6 342
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 173,333评论 25 708
  • 目前为止,我们已经学习了如何修改Gradle构建属性,以及如何运行任务。本章,我们会深入了解这些属性,并且创建我们...
    sollian阅读 2,669评论 0 8
  • 永远不会忘记去年的秋天,九月底一个阳光灿烂的日子,北京的大街小巷充满了欢乐和节日的气息,在迎接一年一度国...
    郑小红阅读 540评论 0 0