From 1281dbcabe35383cd9374ac22765f83ca98629ef Mon Sep 17 00:00:00 2001 From: LamGC Date: Mon, 21 Mar 2022 23:47:59 +0800 Subject: [PATCH] =?UTF-8?q?feat(config):=20=E6=94=AF=E6=8C=81=E6=8C=87?= =?UTF-8?q?=E5=AE=9A=E6=9C=AC=E5=9C=B0=E4=BB=93=E5=BA=93=E7=9A=84=E8=B7=AF?= =?UTF-8?q?=E5=BE=84.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 可指定本地仓库的路径, 用于代替用户目录下的默认 Maven 本地仓库, 这么做可以在任意位置设置共享本地仓库. --- scalabot-app/src/main/kotlin/AppConfigs.kt | 3 ++- scalabot-app/src/main/kotlin/AppMain.kt | 8 ++++++++ 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/scalabot-app/src/main/kotlin/AppConfigs.kt b/scalabot-app/src/main/kotlin/AppConfigs.kt index be9359a..6117efa 100644 --- a/scalabot-app/src/main/kotlin/AppConfigs.kt +++ b/scalabot-app/src/main/kotlin/AppConfigs.kt @@ -138,7 +138,8 @@ internal data class MavenRepositoryConfig( internal data class AppConfig( val proxy: ProxyConfig = ProxyConfig(), val metrics: MetricsConfig = MetricsConfig(), - val mavenRepositories: List = emptyList() + val mavenRepositories: List = emptyList(), + val mavenLocalRepository: String? = null ) /** diff --git a/scalabot-app/src/main/kotlin/AppMain.kt b/scalabot-app/src/main/kotlin/AppMain.kt index 160d1e4..fdbb954 100644 --- a/scalabot-app/src/main/kotlin/AppMain.kt +++ b/scalabot-app/src/main/kotlin/AppMain.kt @@ -4,6 +4,7 @@ import io.prometheus.client.exporter.HTTPServer import kotlinx.coroutines.runBlocking import mu.KotlinLogging import net.lamgc.scalabot.util.registerShutdownHook +import org.eclipse.aether.repository.LocalRepository import org.telegram.telegrambots.bots.DefaultBotOptions import org.telegram.telegrambots.meta.TelegramBotsApi import org.telegram.telegrambots.meta.generics.BotSession @@ -53,6 +54,12 @@ internal class Launcher : AutoCloseable { private val botApi = TelegramBotsApi(DefaultBotSession::class.java) private val botSessionMap = mutableMapOf() + private val mavenLocalRepository = + if (Const.config.mavenLocalRepository != null && Const.config.mavenLocalRepository.isNotEmpty()) { + LocalRepository(Const.config.mavenLocalRepository) + } else { + LocalRepository("${System.getProperty("user.home")}/.m2/repository") + } @Synchronized fun launch(): Boolean { @@ -106,6 +113,7 @@ internal class Launcher : AutoCloseable { }.toList() val extensionPackageFinders = setOf( MavenRepositoryExtensionFinder( + localRepository = mavenLocalRepository, remoteRepositories = remoteRepositories, proxy = Const.config.proxy.toAetherProxy() )