gradle的配置文件build.gradle、gradle.properties、settings.gradle示例
github项目地址
https://github.com/mx342/luceneDemo
build.gradle示例一
plugins {id 'java'
}
//相当于maven的groupid
group 'com.cyjz'
//相当于maven的version
version '1.0-SNAPSHOT'
//maven中的artifactId相当于name,显示在settings.gradle里面//配置所有项目公共信息
allprojects{//插件的类型,可以添加warapply plugin:'java'sourceCompatibility = 1.8//项目发布到仓库供其他人使用//3步,1.添加发布插件
// apply plugin:'maven-publish'
// //2.添加发布url
// //3.执行发布任务
// publishing{
// publishions{
// myPublish(MavenPubliscation){
// from compenents.java
// }
// }
// repositories{
// maven{
// name "myRepo"
// url ""
// }
// }
// }
}
//配置子项目内容
subprojects{repositories {//指定阿里云镜像maven{url 'http://maven.aliyun.com/nexus/content/groups/public/'}mavenCentral()}
//依赖,类似于maven的dependenciesdependencies {//对子项目依赖的写法
// compile project(":model")
// compile 'org.hibernate:hibernate-core:3.6.3.Final'compile group: 'ch.qos.logback', name: 'logback-classic', version: '1.2.3'testCompile group: 'junit', name: 'junit', version: '4.12'
// //解决冲突方式1,排除传递性依赖
// compile('org.hibernate:hibernate-core:3.6.3.Final'){
// exclude group:'org.slf4j',module:'slf4j-api'
// }
// //解决冲突方式2,强制指定一个版本
// configurations.all{
// resolutionStrategy{
// force 'org.slf4j:slf4j-api:1.7.24'
// }
// }}
}
//发现版本冲突就构建失败,不要默认去选择最高版本的策略
configurations.all{resolutionStrategy{failOnVersionConflict()}
}//解决冲突方式2,强制指定一个版本
configurations.all{resolutionStrategy{force 'org.slf4j:slf4j-api:1.7.24'}
}repositories {//指定阿里云镜像maven{url 'http://maven.aliyun.com/nexus/content/groups/public/'}mavenCentral()
}dependencies {//对子项目依赖的写法
// compile project(":model")
// compile 'org.hibernate:hibernate-core:3.6.3.Final'
// compile group: 'ch.qos.logback', name: 'logback-classic', version: '1.2.3'testCompile group: 'junit', name: 'junit', version: '4.12'
// //解决冲突方式1,排除传递性依赖
// compile('org.hibernate:hibernate-core:3.6.3.Final'){
// exclude group:'org.slf4j',module:'slf4j-api'
// }
// //解决冲突方式2,强制指定一个版本
// configurations.all{
// resolutionStrategy{
// force 'org.slf4j:slf4j-api:1.7.24'
// }
// }
}
//创建文件夹目录的闭包
def createDir = {path ->File dir = new File(path);if(!dir.exists()){dir.mkdirs()}
}
//初始化生成项目的任务
task makeJavaDir(){def paths = ['src/test/test','src/test/web']doFirst{paths.forEach(createDir)}
}task makeWebDir(){dependsOn 'makeJavaDir'def paths = ['src/main/webapp','src/test/webapp']doFirst{paths.forEach(createDir)}
}
//4个配置要求
//1.所有项目中应用java插件
//2.web子项目打包成war
//3.所有项目添加logback日志功能
//4.统一配置group和version
plugins {id 'maven-publish'
}dependencies {testCompile group: 'junit', name: 'junit', version: '4.12'compile('org.springframework:spring-context:5.0.9.RELEASE'){exclude group:'commons-logging',module:'commons-logging'}compile 'org.springframework:spring-web:5.0.9.RELEASE'compile 'org.springframework:spring-webmvc:5.0.9.RELEASE'compile 'org.codehaus.janino:janino:3.0.10'compile 'commons-lang:commons-lang:2.6'compile 'commons-codec:commons-codec:1.11'compile 'com.alibaba:fastjson:1.2.49'compile 'io.netty:netty-all:4.1.29.Final'compile ('com.alibaba:dubbo:2.6.2'){exclude group: 'org.springframework', module: 'spring'exclude group: 'org.jboss.netty', module: 'netty'}compile 'org.apache.zookeeper:zookeeper:3.4.9'compile 'org.apache.curator:curator-framework:2.12.0'
}publishing {publications {maven(MavenPublication) {from(components.java)}}
}
//设置资源编译的编码
tasks.withType(JavaCompile) {options.encoding = 'UTF-8'
}
//资源目录的设置
sourceSets {main {java {srcDir 'src/main/java'}resources {srcDir 'src/main/java/resources'}}test {java {srcDir 'test/java'}resources {srcDir 'test/resources'}}
}
//设置主程序入口
def mainClassName = "com.cyjz.server.Main"//在某些场合,我们不需要依赖和src打在一个jar包,我们希望有个lib,然后我们的jar运行时,自动去找依赖jar。这样,就可以不用插件了
task copyDependencies(type: Copy) {from configurations.runtimeinto 'build/libs/lib'
}
jar.dependsOn(copyDependencies)jar {manifest {attributes "Main-Class": "$mainClassName"attributes "Implementation-Title": project.name}//设置打包依赖的jar
// from {
// configurations.compile.collect { it.isDirectory() ? it : zipTree(it) }
// }if (!configurations.runtime.isEmpty()) {manifest.attributes('Class-Path': '. lib/' + configurations.runtime.collect { it.name }.join(' lib/'))}//将静态资源打包出来processResources {from('src/main/java/resources'){include '**/*.*'}}
}
gradle.properties示例
group = 'com.cyjz'
version = '1.0-SNAPSHOT'
settings.gradle示例
rootProject.name = 'todoGradle'
include 'model'
include 'repository'
include 'web'
如果觉得本文对您有所帮助,欢迎您扫码下图所示的支付宝和微信支付二维码对本文进行随意打赏。您的支持将鼓励我继续创作
gradle的配置文件build.gradle、gradle.properties、settings.gradle示例相关推荐
- 学习笔记 - 5步理解Gradle. How build execution is controlled by gradle tasks?
https://docs.gradle.org/current/userguide/tutorial_using_tasks.html#sec:projects_and_tasks https://d ...
- Gradle【有与无】【运行Gradle构建】【G8_2】Gradle Enterprise Gradle插件用户手册
目录 Gradle Enterprise Gradle插件用户手册 1.设定 1.1.应用插件 1.1.1.Gradle 6.x及更高版本 1.1.2.Gradle 5.x 1.2.连接到Gradle ...
- gradle打包流程(二)--- 进一步理解gradle
一.gradle是什么 1.gradle是一个自动化构建工具. gradle是通过组织一系列task来最终完成自动化构建的,所以task是gradle里最重要的概念.以生成一个可用的apk为例,整个过 ...
- settings.gradle.kts里读取properties配置文件或者解析json文件
settings.gradle.kts里进行配置读取可进行动态控制 include 再结合 plugin+includeBuild方式可实现远程依赖和本地module的动态切换 读取配置test.pr ...
- 【Android Gradle 插件】settings.gradle 配置文件 ( 配置基本作用 | include 函数用法 | 目录层级配置 | 修改 Module 模块构建脚本名称 )
文章目录 一.settings.gradle 配置 1.基本作用 2.include 函数用法 3.Module 目录层级配置 4.修改 Module 模块的 build.gradle 默认构建脚本名 ...
- 【Android Gradle 插件】Gradle 映射文件 ( settings.gradle 映射为 Settings 类 | build.gradle 映射为 Project 类 )
文章目录 一.settings.gradle 映射为 Settings 类 二.build.gradle 映射为 Project 类 Android Plugin DSL Reference 参考文档 ...
- gradle 编译java配置文件_Andriod(三):配置文件build.gradle与AndroidManifest.xml
一.编译配置文件build.gradle 一般只需关注模块级别的即可. apply plugin: 'com.android.application' android { //指定编译用的SDK版本号 ...
- Android Studio 中的 gradle 介绍及build.gradle配置文件详解
不同于 Eclispse,Android Studio 是采用 Gradle 来构建项目的,Gradle 是一个非常先进强大的项目构建工具,它使用了一种基于 Groovy 领域的特定语言(DSL)来声 ...
- gradle中的build script详解
文章目录 简介 project和task 一个例子 task详细讲解 task脚本 task依赖 动态task 默认task build script的外部依赖 简介 build.gradle是gra ...
最新文章
- python中自带的三个装饰器
- BZOJ 1562 变换序列
- xp系统怎么添加ntp服务器,1 Windows xp NTP服务器的配置
- CSS做3D旋转魔方(立方体)
- 电脑软件故障排除2014年2月16日[修正版]
- 音乐心理学 | 书籍推荐
- ECharts中Y轴坐标上标记有实心圆
- Vue PC端和移动端的切换
- Python中tkinter模块的学习记录(一)
- HO-PLGA-COOR,酯封端聚(D,L-丙交酯-co-乙交酯)共聚物
- WebSocket实现在线人数统计
- 评价网络舆情系统的eCIA方法---灵玖网络舆情
- 【Python技能树共建】Python爬虫模拟登录
- 交警那不了了之的办事,涉案人员逃逸至今仍没归案
- GAMES101复习:光栅化
- 三相永磁同步电机无速度传感器控制(基于扩展反电动势)
- Java基础(十二)
- 高级计算机应用软件,商务软件高级应用微课教程(高等职业院校技能应用型教材)/计算机应用系列...
- Educational Codeforces Round 74 (Rated for Div. 2)
- [Mybatis-Plus] 调用自带方法 报错 Invalid bound statement
热门文章
- C语言字符型char和整型int的关系和示例
- CentOS7安装后没网络的解决方法
- 基于VMware vSphere的虚拟化平台,内存分配是如何实现的?
- VCSA 6.7 U2无DNS部署 VCSA 7正式版无DNS部署
- 虚拟化 VS 容器化(docker)
- Mysql学习总结(23)——MySQL统计函数和分组查询
- php 获取 body json,从PHP中的JSON POST读取HTTP请求正文的问题
- 大数据隐私保护技术之脱敏技术
- maven scope使用和理解
- 【COCOS2D-HTML5 开发之一】新建HTML5项目及简单阐述与COCOS2D/X引擎关系