Gradle多项目配置的一个demo
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的更多相关文章
- Android Gradle Plugin指南(三)——依赖关系、android库和多项目配置
原文地址:http://tools.android.com/tech-docs/new-build-system/user-guide#TOC-Dependencies-Android-Librari ...
- Log4net - 项目使用的一个简单Demo
参考页面: http://www.yuanjiaocheng.net/entity/entitytypes.html http://www.yuanjiaocheng.net/entity/entit ...
- vsCode怎么为一个前端项目配置ts的运行环境
vsCode为一个前端项目配置ts的运行环境,ts文件保存的时候自动编译成js文件: 假设此前端项目名称为Web:文件结构如图 1. 在根目录中新建一个“.vscode”文件夹,里面建一个“tasks ...
- 下载,配置环境变量,第一个demo
一.在 http://www.oracle.com 下载java JDK 安装到自定义的地方. 二.配置环境变量:在我的电脑→高级系统设置→环境变量 ① 找到Path新增一个路径(该路径为JDK存放的 ...
- Spring boot - 梳理 - 根本上说,Spring Boot项目只不过是一个普通的Spring项目,只是使用了Spring Boot的起步依赖和自动配置
根本上说,Spring Boot项目只不过是一个普通的Spring项目,只是使用了Spring Boot的起步依赖和自动配置
- 如何在Android Studio中使用Gradle发布项目至Jcenter仓库
简述 目前非常流行将开源库上传至Jcenter仓库中,使用起来非常方便且易于维护,特别是在Android Studio环境中,只需几步配置就可以轻松实现上传和发布. Library的转换和引用 博主的 ...
- 模块化之Spring3.0 web fragment和gradle构建项目
1.背景 模块化开发很久以前就开始普及的概念.但是到了企业实际情况中,真正把模块化作为系统架构的核心的不多.或者说对模块化有这个意识,但是具体到底该如何实现,有些模糊,同时也许因为项目紧.任务中. ...
- 初识nginx之第一个demo
商城项目做了一个多月了,想到必须用到负载均衡,简单了解了一下nginx,首先分享第一个demo,五月份上线后,会继续分享一系列相关知识. 在nginx根目录下,用了一个园友的批处理文件nginx.ba ...
- Android studio下gradle Robolectric单元测试配置
android studio下gradle Robolectric单元测试配置 1.Robolectric Robolectric是一个基于junit之上的单元测试框架.它并不依赖于Android提供 ...
随机推荐
- There is no Action mapped for namespace / and action name UserAction
果断收藏了,说的非常具体.刚開始学习的人常常遇到的问题. There is no Action mapped for namespace / and action name UserAction 在网 ...
- 【ECSHOP插件】商品颜色尺寸仿淘宝选择功能免费发布
先放效果图,如此实用的功能是不是迫不及待的要添加到自己的网店中了呢 牵涉到的修改文件(default模板为例) /themes/default/style.css /themes/default/ ...
- core graphics path
当UIKit无法满足画图需求的时候.就须要用到Core Graphics API.当中最普遍的就是path. 一些重要的概念 graphics context 能够理解成canvas.在ios里相应C ...
- android升级软件版本号,您安装后的新版本号,成功安装画面没有出现,或直接回到桌面
Intent intent = new Intent(Intent.ACTION_VIEW); intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); //an ...
- android如何使用自己定义JNI接口,以及NDK环境建设和使用的工具。
一.建筑环境: 1.需要的工具: A.cygwin (在windows下使用LINUX系统) ...
- oracle 修改dbid和dbname
一般这玩意没人修改,除非特殊情况,比如克隆数据库等等 步骤: 1.备份数据库 2.启动数据到mount状态 3.nid命令修改 (如果只是修改dbid,那么不需要dbname参数,需要更改dbname ...
- hadoop 提高hdfs删文件效率----hadoop删除文件流程解析
前言 这段时间在用hdfs,由于要处理的文件比较多,要及时产出旧文件,但是发现hdfs的blocks数一直在上涨,经分析是hdfs写入的速度较快,而block回收较慢,所以分心了一下hadoop删文件 ...
- 用数据说话,外贸产品选择(中篇)-google趋势分析法
在上篇文章<用数据说话,贸B2C产品选择(上篇)-热门搜索法>中我们能搜索出来几种产品了,那我们就拿上次搜索出来的热门产品来做一个趋势分析.我们经过几个站点挑出了几种热卖产品Wedding ...
- codeforces #256 A. Rewards
A. Rewards time limit per test 1 second memory limit per test 256 megabytes input standard input out ...
- [Python]How to handle the exception in Python?
This post demonstrates how to use try clause to handle the exceptions def test_exception(case=None): ...