-
Notifications
You must be signed in to change notification settings - Fork 1.8k
/
build.gradle
149 lines (131 loc) · 4.35 KB
/
build.gradle
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
import java.time.OffsetDateTime
import java.time.format.DateTimeFormatter
// gradle自身会用到的相关设置
buildscript {
// 仓库
repositories {
// 本地
mavenLocal()
// 阿里云
maven {
url 'http://maven.aliyun.com/nexus/content/groups/public/'
}
// 中央仓库
mavenCentral()
// grandle插件
maven {
url 'https://plugins.gradle.org/m2/'
}
}
// 子模块会用到的变量
ext {
springBootVersion = '2.4.4'
}
}
// 插件
plugins {
id 'java'
id 'java-library'
// 有这个声明,子模块可以使用org.springframework.boot插件而无需指定版本,但是apply=false表示当前模块不使用此插件
id 'org.springframework.boot' version "${springBootVersion}" apply false
id 'io.spring.dependency-management' version '1.0.11.RELEASE'
}
// gradle wrapper指定版本
wrapper {
gradleVersion = '6.8.3'
}
// 取当前时间
def buildTimeAndDate = OffsetDateTime.now()
// 根据时间生成字符串变量
ext {
projectVersion = project.version
buildDate = DateTimeFormatter.ISO_LOCAL_DATE.format(buildTimeAndDate)
buildTime = DateTimeFormatter.ofPattern('HH:mm:ss.SSSZ').format(buildTimeAndDate)
}
// 针对所有project的配置,包含根项目
allprojects {
group 'com.bolingcavalry'
version '1.0.0'
apply plugin: 'java'
apply plugin: 'idea'
apply plugin: 'io.spring.dependency-management'
// 编译相关参数
compileJava {
sourceCompatibility = JavaVersion.VERSION_1_8
targetCompatibility = JavaVersion.VERSION_1_8
options.encoding = 'UTF-8'
options.compilerArgs = [
'-Xlint:all', '-Xlint:-processing'
]
}
// Copy LICENSE
tasks.withType(Jar) {
from(project.rootDir) {
include 'LICENSE'
into 'META-INF'
}
}
// 生成jar文件时,MANIFEST.MF的内容如下
jar {
manifest {
attributes(
'Created-By': "${System.properties['java.version']} (${System.properties['java.vendor']} ${System.properties['java.vm.version']})".toString(),
'Built-By': 'travis',
'Build-Date': buildDate,
'Build-Time': buildTime,
'Built-OS': "${System.properties['os.name']}",
'Specification-Title': project.name,
'Specification-Version': project.version,
'Specification-Vendor': 'Will Zhao',
'Implementation-Title': project.name,
'Implementation-Version': project.version,
'Implementation-Vendor': 'Will Zhao'
)
}
}
// 仓库
repositories {
// 本地
mavenLocal()
// 如果有私服就在此配置,如果没有请删除这个配置
maven {
url 'http://192.168.50.43:8081/repository/aliyun-proxy/'
}
maven {
url 'https://maven.aliyun.com/repository/public'
}
// 如果要访问私服的release库,就在此配置地址
// 如果没有请删除这个配置
maven {
url 'http://192.168.50.43:8081/repository/my-release/'
}
// 如果要访问私服的snapshot库,就在此配置地址
// 如果没有请删除这个配置
maven {
url 'http://192.168.50.43:8081/repository/my-snapshot/'
}
// 中央仓库
mavenCentral()
// grandle插件
maven {
url "https://plugins.gradle.org/m2/"
}
}
}
// 类似maven的dependencyManagement,这里将所有jar的版本指定好,子模块在依赖时可以不用指定版本
allprojects { project ->
buildscript {
dependencyManagement {
imports {
mavenBom "org.springframework.boot:spring-boot-starter-parent:${springBootVersion}"
mavenBom "org.junit:junit-bom:5.7.0"
}
dependencies {
dependency 'org.projectlombok:lombok:1.16.16'
dependency 'org.apache.commons:commons-lang3:3.11'
dependency 'commons-collections:commons-collections:3.2.2'
dependency 'net.devh:grpc-server-spring-boot-starter:2.11.0.RELEASE'
}
}
}
}