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提供 ...
随机推荐
- Cocos2d-x学习笔记(1)
Cocos2d-x原型Cocos2d,基于Cocos2d-iPhone,跨平台. Hello Workd分析: 1."resource"目录 该目录主要用于存放游戏中须要的图片.音 ...
- Nagios经check_http监视web申请书server多个tomcat维修
怎么样nagios显示器tomcat,它是一个相对简单的和复杂的事情.简单是因为,只有监控的假设web应用服务器tomcat无论是服务正常进行,很简单.假设你要监视tomcat其他例子,例如连接数jv ...
- .NET 单点登录
<appSettings> <!--是否启用单点登录接口--> <add key="IsStartCas" value="f ...
- python学习之list
list: 创建:list = [5,7,9] 取值和改值:list[1] = list[1] * 5 列表尾插入:list.append(4) 去掉第0个值并返回第0个值的数值:list.pop(0 ...
- MVC json
1. .net MVC中Controller 在mvc中所有的controller类都必须使用"Controller"后缀来命名 并且对Action也有一定的要求: 必须是一个pu ...
- OS调度算法常用摘要
一.常见的批处理作业调度 1.先来先服务调度算法(FCFS):就是依照各个作业进入系统的自然次序来调度作业.这样的调度算法的长处是实现简单,公平. 其缺点是没有考虑到系统中各种资源的综合使用情况,往往 ...
- ContentProvider的使用
这方面的资料应该网上已经很多了,我在这里只是做简单的总结就行了. 如题:ContentProvider是android的内容提供器,可以为应用程序提供各种的数据,例如数据表,txt文件,xml文件等等 ...
- 使用2DToolkit报错“ OverflowException: Value is too large”
今天使用2DToolkit做图集和动画时报错“ OverflowException: Value is too large”,大侠们说是字符串转整型时超过了Int的大小范围,所以报错.后来我一位同事高 ...
- AutoFac使用方法总结:Part I
注册部分 使用RegisterType进行注册 [Fact] public void can_resolve_myclass() { var builder = new ContainerBuilde ...
- "UBUNTU: SAUCE: apparmor: 3.0 backport of apparmor3"
下面提供的commit是为了让nexus 4g的内核支持ubunt touch的一些功能. 链接地址如下: "UBUNTU: SAUCE: apparmor: 3.0 backport of ...