ParentProject
├─build.gradle
├─settings.gradle
├─libs
├─subProject1
├────────────build.gradle
├────────────src/java
├────────────conf
├─subProject2
├────────────build.gradle
├────────────src/java
├────────────conf
├─subProject3
├────────────build.gradle
├────────────src/java
├────────────conf

ParentProject

目录下的build.gradle

//所有项目公用资源:IDE和库
allprojects {
repositories {
mavenLocal()
}
} //所有子项目公用:源码和单元测试代码定义
subprojects {
println "======================================"
println "${rootProject.projectDir}/libs"
println "======================================"
apply plugin: 'java'
sourceSets {
main {
java {
srcDir 'src/java'
}
}
test {
java {
srcDir 'src/test'
}
}
} dependencies {
compile fileTree(dir: "${rootProject.projectDir}/liblicense",include: '**/*.jar')
}
}

目录下的settings.gradle

include 'subProject1'
include 'subProject2'
include 'subProject3'
//或include 'subProject1','subProject2','subProject3'

subProject1下的build.gradle

project(':subProject1') {
dependencies {
}
}

subProject2下的build.gradle

project(':subProject2') {
dependencies {
compile project(':subProject1')
}
}

subProject3下的build.gradle

project(':subProject3') {
dependencies {
compile project(':subProject1')
}
}

graadle中的一个copy操作:
目录结构:

│  build.gradle
│ gradlew
│ gradlew.bat
│ list.txt
│ settings.gradle

├─.gradle
│ └─2.8
│ └─taskArtifacts
│ cache.properties
│ cache.properties.lock
│ fileHashes.bin
│ fileSnapshots.bin
│ outputFileStates.bin
│ taskArtifacts.bin

├─build
│ ├─libs
│ │ gradle.jar
│ │
│ └─tmp
│ └─jar
│ MANIFEST.MF

└─graldeCopyConfig
├─build
│ ├─classes
│ │ ├─main
│ │ │ EqualDemo.class
│ │ │
│ │ └─test
│ │ │ EqualDemoTest.class
│ │ │
│ │ └─config
│ │ test.xml
│ │
│ ├─dependency-cache
│ ├─libs
│ │ graldeCopyConfig.jar
│ │
│ ├─reports
│ │ └─tests
│ │ │ index.html
│ │ │
│ │ ├─classes
│ │ │ EqualDemoTest.html
│ │ │
│ │ ├─css
│ │ │ base-style.css
│ │ │ style.css
│ │ │
│ │ ├─js
│ │ │ report.js
│ │ │
│ │ └─packages
│ │ default-package.html
│ │
│ ├─test-results
│ │ │ TEST-EqualDemoTest.xml
│ │ │
│ │ └─binary
│ │ └─test
│ │ output.bin
│ │ output.bin.idx
│ │ results.bin
│ │
│ └─tmp
│ ├─compileJava
│ │ └─emptySourcePathRef
│ ├─compileTestJava
│ │ └─emptySourcePathRef
│ └─jar
│ MANIFEST.MF

└─src
├─main
│ ├─java
│ │ EqualDemo.java
│ │
│ └─resources
└─test
├─java
│ │ EqualDemoTest.java
│ │
│ └─config
│ test.xml

└─sources

build.gradle

/*
* This build file was auto generated by running the Gradle 'init' task
* by 'MyWorld' at '16-2-22 下午11:33' with Gradle 2.8
*
* This generated file contains a commented-out sample Java project to get you started.
* For more details take a look at the Java Quickstart chapter in the Gradle
* user guide available at https://docs.gradle.org/2.8/userguide/tutorial_java_projects.html
*/
subprojects {
// Apply the java plugin to add support for Java
apply plugin: 'java'
sourceCompatibility = 1.6
targetCompatibility = 1.6 tasks.withType(JavaCompile) {
options.encoding = "UTF-8"
} sourceSets {
main {
java {
srcDirs = ['src/main/java']
}
}
test {
java {
srcDirs = ['src/test/java']
}
}
} // In this section you declare where to find the dependencies of your project
repositories {
// Use 'jcenter' for resolving your dependencies.
// You can declare any Maven/Ivy/file repository here.
jcenter()
} dependencies {
// The production code uses the SLF4J logging API at compile time
compile 'org.slf4j:slf4j-api:1.7.12' // Declare the dependency for your favourite test framework you want to use in your tests.
// TestNG is also supported by the Gradle Test task. Just change the
// testCompile dependency to testCompile 'org.testng:testng:6.8.1' and add
// 'test.useTestNG()' to your build script.
testCompile 'junit:junit:4.12'
} task copyConfig(type: Copy) {
from 'src/test/java'
into 'build/classes/test'
include '**/*.xml'
println fileTree('src/test/java').files
println fileTree('build/classes/test').files
}
test.dependsOn copyConfig
} project(':graldeCopyConfig') {
// In this section you declare the dependencies for your production and test code
dependencies {
}
}

settings.gradle

/*
* This settings file was auto generated by the Gradle buildInit task
* by 'MyWorld' at '16-2-22 下午11:33' with Gradle 2.8
*
* The settings file is used to specify which projects to include in your build.
* In a single project build this file can be empty or even removed.
*
* Detailed information about configuring a multi-project build in Gradle can be found
* in the user guide at https://docs.gradle.org/2.8/userguide/multi_project_builds.html
*/
include 'graldeCopyConfig'

gradle build的执行结果

[G:\java\gradle\graldeCopyConfig\src\test\java\EqualDemoTest.java, G:\java\gradle\graldeCopyConfig\src\test\java\config\test.xml]
[G:\java\gradle\graldeCopyConfig\build\classes\test\EqualDemoTest.class, G:\java\gradle\graldeCopyConfig\build\classes\test\config\test.xml]
:graldeCopyConfig:compileJava UP-TO-DATE
:graldeCopyConfig:processResources UP-TO-DATE
:graldeCopyConfig:classes UP-TO-DATE
:graldeCopyConfig:jar UP-TO-DATE
:graldeCopyConfig:assemble UP-TO-DATE
:graldeCopyConfig:copyConfig UP-TO-DATE
:graldeCopyConfig:compileTestJava UP-TO-DATE
:graldeCopyConfig:processTestResources UP-TO-DATE
:graldeCopyConfig:testClasses UP-TO-DATE
:graldeCopyConfig:test UP-TO-DATE
:graldeCopyConfig:check UP-TO-DATE
:graldeCopyConfig:build UP-TO-DATE BUILD SUCCESSFUL Total time: 5.196 secs

8.3. Dependency configurations

In Gradle dependencies are grouped into configurations. A configuration is simply a named set of dependencies. We will refer to them as dependency configurations. You can use them to declare the external dependencies of your project. As we will see later, they are also used to declare the publications of your project.

The Java plugin defines a number of standard configurations. These configurations represent the classpaths that the Java plugin uses. Some are listed below, and you can find more details inTable 23.5, “Java plugin - dependency configurations”.

compile

The dependencies required to compile the production source of the project.

runtime

The dependencies required by the production classes at runtime. By default, also includes the compile time dependencies.

testCompile

The dependencies required to compile the test source of the project. By default, also includes the compiled production classes and the compile time dependencies.

testRuntime

The dependencies required to run the tests. By default, also includes the compile, runtime and test compile dependencies.

Various plugins add further standard configurations. You can also define your own custom configurations to use in your build. Please see Section 52.3, “Dependency configurations” for the details of defining and customizing dependency configurations.

 

Gradle多项目配置的一个demo的更多相关文章

  1. Android Gradle Plugin指南(三)——依赖关系、android库和多项目配置

    原文地址:http://tools.android.com/tech-docs/new-build-system/user-guide#TOC-Dependencies-Android-Librari ...

  2. Log4net - 项目使用的一个简单Demo

    参考页面: http://www.yuanjiaocheng.net/entity/entitytypes.html http://www.yuanjiaocheng.net/entity/entit ...

  3. vsCode怎么为一个前端项目配置ts的运行环境

    vsCode为一个前端项目配置ts的运行环境,ts文件保存的时候自动编译成js文件: 假设此前端项目名称为Web:文件结构如图 1. 在根目录中新建一个“.vscode”文件夹,里面建一个“tasks ...

  4. 下载,配置环境变量,第一个demo

    一.在 http://www.oracle.com 下载java JDK 安装到自定义的地方. 二.配置环境变量:在我的电脑→高级系统设置→环境变量 ① 找到Path新增一个路径(该路径为JDK存放的 ...

  5. Spring boot - 梳理 - 根本上说,Spring Boot项目只不过是一个普通的Spring项目,只是使用了Spring Boot的起步依赖和自动配置

    根本上说,Spring Boot项目只不过是一个普通的Spring项目,只是使用了Spring Boot的起步依赖和自动配置

  6. 如何在Android Studio中使用Gradle发布项目至Jcenter仓库

    简述 目前非常流行将开源库上传至Jcenter仓库中,使用起来非常方便且易于维护,特别是在Android Studio环境中,只需几步配置就可以轻松实现上传和发布. Library的转换和引用 博主的 ...

  7. 模块化之Spring3.0 web fragment和gradle构建项目

      1.背景 模块化开发很久以前就开始普及的概念.但是到了企业实际情况中,真正把模块化作为系统架构的核心的不多.或者说对模块化有这个意识,但是具体到底该如何实现,有些模糊,同时也许因为项目紧.任务中. ...

  8. 初识nginx之第一个demo

    商城项目做了一个多月了,想到必须用到负载均衡,简单了解了一下nginx,首先分享第一个demo,五月份上线后,会继续分享一系列相关知识. 在nginx根目录下,用了一个园友的批处理文件nginx.ba ...

  9. Android studio下gradle Robolectric单元测试配置

    android studio下gradle Robolectric单元测试配置 1.Robolectric Robolectric是一个基于junit之上的单元测试框架.它并不依赖于Android提供 ...

随机推荐

  1. hdu 4007 Dave (2011年大连ACM网络赛)

    题意:给定正方形的边长 r ,在平面内寻找正方形可以圈住的点的最大的个数. 分析:先对点排序,然后固定一条边,再平移另一条垂直边,得到点的个数,最后比较大小即可. 注意:不包含正方形倾斜的情况! // ...

  2. 编译安装LNMP Centos 6.5 x64 + Nginx1.6.0 + PHP5.5.13 + Mysql5.6.19

    (来自:http://www.cnblogs.com/vicowong/archive/2011/12/01/2116212.html) 环境: 系统硬件:vmware vsphere (CPU:2* ...

  3. Nginx安装手冊以及图片server部署

    1.      安装gcc yum install gcc 2.      安装pcre,pcre-devel 在zhoulh文件夹下建立source build文件夹 mkdir source bu ...

  4. Android 5.0 开发者官方网站疏理知识结构

    Android 5.0 开发人员官网知识结构疏理 太阳火神的漂亮人生 (http://blog.csdn.net/opengl_es) 本文遵循"署名-非商业用途-保持一致"创作公 ...

  5. POJ 1276  Cash Machine(多重背包)

    Cash Machine Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 24132 Accepted: 8446 Descrip ...

  6. POJ 36666 Making the Grade 简单DP

    题意是: 给出n个数,让你用最小的花费将其改成非递增或非递减的 然后花费就是新序列与原序列各个位置的数的差的绝对值的和 然后可以看到有2000个数,数的范围是10亿 仔细观察可以想象到.其实改变序列中 ...

  7. IT痴汉的工作现状13-吓唬电话

    那是一个普通的周末上午,稍微阴沉的天,使得暑气消退了好多.刚吃过早饭,我懒懒的浏览着CSDN论坛上有趣的问题和答案. 突然电话响起.是一个陌生的号码.我像往常一样接起电话,""您好 ...

  8. Oracle改变字段类型

    由于需求变化.现在,我们要一个类型NUMBER(8,2)字段类型改变 char. 总体思路如以下:       将要更改类型的字段名改名以备份,然后加入一个与要更改类型的字段名同名的字段(原字段已经改 ...

  9. android创建自定义对话框

    创建如下自定义对话框: JAVA代码 LayoutInflater li = LayoutInflater.from(TagActivity. this);  //NOTE final View Te ...

  10. 软件測试系统文章(文件夹&链接在此)

    前言 我会在此账号上写一系列关于软件測试的文章,故在此置顶软件測试系列文章的文件夹和链接,以方便大家阅读! 文件夹 软件測试系列之入门篇(一) 软件測试系列之了解篇(二) 软件測试系列之黑白盒(三) ...