Gradle镜像加速
# 一、gradle设置nexus私服方案
# 1.1 项目级别配置(Project-Level)
项目级别配置适用于单个项目的 build.gradle
文件。这样可以针对不同的项目进行特定的 Nexus 私服配置。
在 build.gradle
中的配置:
// 应用Java插件和Maven发布插件
plugins {
id 'java' // Java插件
id 'maven-publish' // Maven发布插件
}
// 定义项目的组名和版本
group = 'com.example'
version = '1.0.0'
// 仓库配置 - 使用私服作为依赖源
repositories {
maven {
url "http://your-nexus-server/repository/maven-public/"
credentials {
username 'your-username' // 用户名
password 'your-password' // 密码
}
}
}
// 项目依赖
dependencies {
implementation 'org.apache.hadoop:hadoop-common:3.3.0'
implementation 'org.apache.spark:spark-core_2.12:3.1.2'
}
// 发布配置 - 将项目发布到Nexus仓库
publishing {
publications {
mavenJava(MavenPublication) {
from components.java // 发布Java组件
}
}
repositories {
maven {
url "http://your-nexus-server/repository/maven-releases/"
credentials {
username 'your-username' // 用户名
password 'your-password' // 密码
}
}
}
}
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
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
说明:
- 每个项目的
build.gradle
文件需要单独配置。 - 使用该方法可以灵活管理每个项目的依赖和发布配置。
# 1.2 全局配置(Global-Level)
全局配置适用于在多个项目中共享 Nexus 私服配置。你可以通过修改 ~/.gradle/init.gradle
文件,一次性对所有项目生效。
在 init.gradle
中的配置:
allprojects {
repositories {
// 全局Nexus私服配置,适用于所有项目
maven {
url "http://your-nexus-server/repository/maven-public/"
credentials {
username 'your-username' // 用户名
password 'your-password' // 密码
}
}
}
}
// 如果项目需要发布,也可以在全局设置发布仓库
gradle.projectsEvaluated {
allprojects {
publishing {
repositories {
maven {
url "http://your-nexus-server/repository/maven-releases/"
credentials {
username 'your-username' // 用户名
password 'your-password' // 密码
}
}
}
}
}
}
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
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
特点:
- 自动生效:此配置文件会对所有使用 Gradle 构建的项目生效,无需每个项目手动配置。
- 依赖与发布管理:所有项目会共享同一个 Nexus 私服仓库,无需重复配置。
# 1.3 选择建议:
- 如果你想单独控制每个项目的配置,并根据项目需求灵活管理依赖,建议使用 项目级别配置。
- 如果你有很多项目,并且希望所有项目共享同一套 Nexus 私服配置,那么 全局配置 是最佳选择。
本人更倾向于全局设置:
我这里做了统一的汇聚,关联所有的下载镜像:
# 二、在 Bigtop 项目中编译案例—Kafka
# 2.1 编译日志
# kafka 2.8.1 基于gradle 打rpm的编译
gradle \
kafka-rpm \
-PparentDir=/usr/bigtop \
-Dbuildwithdeps=true \
-PpkgSuffix \
-d
# kafka 2.8.1 独立编译命令
export NEXUS_URL=172.20.0.2
./gradlew -PscalaVersion=2.12.13 clean releaseTarGz -x signArchives -d
1
2
3
4
5
6
7
8
9
10
11
12
2
3
4
5
6
7
8
9
10
11
12
2024-09-18T07:07:05.990+0000 [DEBUG] [org.gradle.internal.resource.transport.http.HttpResponseResource] Attempting to download resource http://172.20.0.2:8081/repository/maven-public/xpp3/xpp3_min/1.1.4c/xpp3_min-1.1.4c.jar.sha1.
2024-09-18T07:07:05.990+0000 [DEBUG] [org.gradle.internal.resource.transport.http.HttpResponseResource] Attempting to download resource http://172.20.0.2:8081/repository/maven-public/xmlpull/xmlpull/1.1.3.1/xmlpull-1.1.3.1.jar.sha1.
2024-09-18T07:07:05.990+0000 [DEBUG] [org.apache.http.impl.conn.PoolingHttpClientConnectionManager] Connection [id: 19][route: {}->http://172.20.0.2:8081] can be kept alive indefinitely
2024-09-18T07:07:05.990+0000 [DEBUG] [org.apache.http.impl.conn.DefaultManagedHttpClientConnection] http-outgoing-19: set socket timeout to 0
...
1
2
3
4
5
2
3
4
5
# 2.2 使用ambari-env 一键解决环境准备问题
项目地址: ambari-env: Ambari+Bigtop 一站式编译和部署解决方案 (gitee.com) (opens new window)
# Step1 配置直刷指定位置
# Step2 统一的模板文件
# Step3 编译前自动准备环境