标签
工具
字数
757 字
阅读时间
4 分钟
一、概述
1.1 相关组件
- ext 拓展配置,可在其中新增项目的扩展信息
- buildscript 插件构建的相关配置
- allprojects 多模块项目使用 所有项目的构建管理信息,一般在其中配置编码及项目名
- subprojects 多模块项目使用 所有子模块的构建管理信息
- repositories 仓库配置
二、相关配置
2.1 仓库配置
groovy
/*
* 指定所使用的仓库,mavenCentral()表示使用中央仓库,此刻项目中所需要的jar包都会默认从中央仓库下载到本地指定目录
* mavenLocal()
* mavenCentral()
* 以上配置表上先从本地仓库寻找依赖,如果没有再从中仓库下载。
* mavenCentral()
* 如果只配置中央仓库,表示直接从中央仓库下载jar包。但是如果指定下载的位置已经有了,就不会再次下载了。
* */
repositories {
mavenLocal()
mavenCentral()
}2.2 依赖管理
只有项目在引用java插件时,才可以在dependencies中引用依赖
groovy
apply plugin: 'java'
// 打成war包
apply plugin: 'war'
sourceCompatibility = 1.8
dependencies {
compileOnly 'org.projectlombok:lombok:1.18.10'
annotationProcessor 'org.projectlombok:lombok:1.18.10'
}2.3 打包管理
当当前模块也引用了springboot的插件时,若想将当前模块作为普通依赖jar,需要将bootjar关闭
groovy
// 引用springboot插件
plugins {
id 'org.springframework.boot'
}
jar.enabled=true
bootJar.enabled=false2.4 lombok引用
lombok的引用需要同时加入注解处理器,或者在idea构建中将构建方式改为idea构建
groovy
compileOnly 'org.projectlombok:lombok:1.18.10'
annotationProcessor 'org.projectlombok:lombok:1.18.10'2.5 普通jar包配置启动类
需要在配置中加入主类的配置
groovy
jar {
manifest {
attributes(
'Main-Class': 'com.test.OperationMenu'
)
}
}三、配置示例
grovvy
import org.apache.tools.ant.filters.ReplaceTokens
ext {
//统一配置springcloud的版本号
set('springCloudVersion', 'Greenwich.SR2')
//产品代号
productCode = 'micro-app'
//项目代号 定制化
projectCode = 'wxp'
//SVN版本号
// svnVerson = getVersion()
//dev:研发环境,prod:正式环境,默认dev
env = 'dev'
}
buildscript {
repositories {
// maven {
// url "https://plugins.gradle.org/m2/"
// }
repositories {
maven { url 'https://maven.aliyun.com/repository/public' }
jcenter()
}
}
dependencies {
classpath "org.springframework.boot:spring-boot-gradle-plugin:2.1.3.RELEASE"
classpath "io.spring.gradle:dependency-management-plugin:1.0.7.RELEASE"
// classpath "gradle.plugin.org.liquibase:liquibase-gradle-plugin:2.0.1"
// classpath 'se.transmode.gradle:gradle-docker:1.2'
}
}
allprojects {
group 'com.lly'
version '1.0-SNAPSHOT'
apply plugin: 'io.spring.dependency-management'
//apply plugin: 'eclipse'
//设置编码
tasks.withType(JavaCompile) {
options.encoding = "UTF-8"
}
//配置仓库
repositories {
maven { url 'https://maven.aliyun.com/repository/public' }
maven { url 'https://repo.spring.io/milestone' }
mavenCentral()
}
dependencies {
}
//控制子项目依赖的jar包的版本号
dependencyManagement {
imports {
mavenBom "org.springframework.cloud:spring-cloud-dependencies:${springCloudVersion}"
}
}
}
subprojects {
apply plugin: 'java'
sourceCompatibility = 1.8
dependencies {
compileOnly 'org.projectlombok:lombok:1.18.10'
annotationProcessor 'org.projectlombok:lombok:1.18.10'
}
// annotationProcessor('org.projectlombok:lombok')
// def srcArray = ['src/main'];
// String projectCode = project.hasProperty('projectCode') ? project.projectCode : null;
// if(!projectCode?.isEmpty()){
// if(file('src/' + projectCode).isDirectory()){
// srcArray << 'src/' + projectCode;
// }
// }
// println("==> $project.name source $srcArray")
//
// sourceSets{
// main{
// java {
// srcDirs = srcArray.collect{
// path -> path + '/java'
// }
// }
// resources {
// srcDirs = srcArray.collect{
// path -> path + '/resources'
// }
// }
// }
// }
//
// def loadGroovyConfig = {
// def configFile = file(projectDir.getAbsolutePath()+'\\config.groovy')
// println(configFile.getAbsolutePath())
// def env = project.hasProperty('env') ? project.env : 'dev'
// println("==> $project.name load config with $env")
// new ConfigSlurper(env).parse(configFile.toURL()).toProperties()
// }
//
// processResources {
// filteringCharset = 'UTF-8'
// from(sourceSets.main.resources.srcDirs) {
// include '**/*.properties'
// filter(ReplaceTokens, tokens: loadGroovyConfig())
// }
// outputs.upToDateWhen { false }
// }
}