|
|
@@ -409,31 +409,76 @@ function configureGradleWrapper() {
|
|
|
return;
|
|
|
}
|
|
|
|
|
|
- console.log('🔧 配置 Gradle wrapper 使用 Gradle 9.0.0...');
|
|
|
+ console.log('🔧 配置 Gradle wrapper 使用 Gradle 8.13(腾讯云镜像)...');
|
|
|
|
|
|
try {
|
|
|
// 读取现有的配置文件
|
|
|
let content = fs.readFileSync(gradleWrapperPropsPath, 'utf8');
|
|
|
|
|
|
- // 替换 distributionUrl 为我们的 Gradle 版本
|
|
|
+ // 替换 distributionUrl 为腾讯云镜像,并添加超时配置
|
|
|
const oldUrlPattern = /distributionUrl=.*/;
|
|
|
- const newUrl = 'distributionUrl=https\\://services.gradle.org/distributions/gradle-9.0.0-bin.zip';
|
|
|
+ const newUrl = 'distributionUrl=https\\://mirrors.cloud.tencent.com/gradle/gradle-8.13-bin.zip';
|
|
|
|
|
|
if (oldUrlPattern.test(content)) {
|
|
|
content = content.replace(oldUrlPattern, newUrl);
|
|
|
fs.writeFileSync(gradleWrapperPropsPath, content, 'utf8');
|
|
|
- console.log('✅ Gradle wrapper 已配置为使用 Gradle 9.0.0');
|
|
|
+ console.log('✅ Gradle wrapper 已配置为使用 Gradle 8.13(腾讯云镜像)');
|
|
|
} else {
|
|
|
console.log('⚠️ 未找到 distributionUrl 配置,添加新配置');
|
|
|
content += `\n${newUrl}\n`;
|
|
|
fs.writeFileSync(gradleWrapperPropsPath, content, 'utf8');
|
|
|
- console.log('✅ 已添加 Gradle 9.0.0 配置');
|
|
|
+ console.log('✅ 已添加 Gradle 8.13 配置');
|
|
|
+ }
|
|
|
+
|
|
|
+ // 添加网络超时配置
|
|
|
+ if (!content.includes('networkTimeout')) {
|
|
|
+ content += '\n# 网络超时设置(300秒 = 5分钟)\nnetworkTimeout=300000\n';
|
|
|
+ fs.writeFileSync(gradleWrapperPropsPath, content, 'utf8');
|
|
|
+ console.log('✅ 已添加网络超时配置');
|
|
|
}
|
|
|
} catch (error) {
|
|
|
console.warn('⚠️ 配置 Gradle wrapper 失败:', error.message);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+// 配置全局 Gradle 设置(超时时间、镜像等)
|
|
|
+function configureGradleGlobal() {
|
|
|
+ const initGradlePath = path.join(cordovaPrjDir, 'init.gradle');
|
|
|
+
|
|
|
+ console.log('🔧 创建全局 Gradle 配置(init.gradle)...');
|
|
|
+
|
|
|
+ const initGradleContent = `
|
|
|
+allprojects {
|
|
|
+ repositories {
|
|
|
+ maven { url 'https://maven.aliyun.com/repository/public' }
|
|
|
+ maven { url 'https://maven.aliyun.com/repository/google' }
|
|
|
+ maven { url 'https://maven.aliyun.com/repository/gradle-plugin' }
|
|
|
+ mavenCentral()
|
|
|
+ google()
|
|
|
+ jcenter()
|
|
|
+ }
|
|
|
+
|
|
|
+ // 配置所有任务的网络超时
|
|
|
+ tasks.withType(JavaCompile) {
|
|
|
+ options.fork = true
|
|
|
+ options.forkOptions.memoryMaximumSize = '1g'
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+task wrapper(type: Wrapper) {
|
|
|
+ gradleVersion = '8.13'
|
|
|
+ distributionUrl = 'https://mirrors.cloud.tencent.com/gradle/gradle-8.13-bin.zip'
|
|
|
+ networkTimeout = 300000 // 5分钟超时
|
|
|
+}
|
|
|
+
|
|
|
+// 全局超时设置
|
|
|
+gradle.startParameter.taskExecutionTimeout = java.time.Duration.ofMinutes(10)
|
|
|
+`;
|
|
|
+
|
|
|
+ fs.writeFileSync(initGradlePath, initGradleContent, 'utf8');
|
|
|
+ console.log('✅ 已创建 init.gradle 全局配置(5分钟超时 + 阿里云镜像)');
|
|
|
+}
|
|
|
+
|
|
|
// 配置 Android 构建环境变量
|
|
|
function getAndroidEnv() {
|
|
|
// 计算 Gradle bin 路径
|
|
|
@@ -471,6 +516,9 @@ function buildAndroidApk() {
|
|
|
// 2.5. 配置 Gradle wrapper 使用我们的 Gradle 版本
|
|
|
configureGradleWrapper();
|
|
|
|
|
|
+ // 2.6. 配置全局 Gradle 设置(超时时间、镜像等)
|
|
|
+ configureGradleGlobal();
|
|
|
+
|
|
|
// 3. 复制 dist/h5 → .build/dros/www
|
|
|
fs.rmSync(dstDir, { recursive: true, force: true });
|
|
|
fs.mkdirSync(dstDir, { recursive: true });
|