Мне нужно изменить многопроектную сборку на однопроектную, поскольку в этом репо есть и будет только один проект. В настоящее время в settings.gradle
у меня есть собственный плагин репо, который в настоящее время использует блок pluginManagement
с resolutionStrategy
и мой список репо:
pluginManagement {
resolutionStrategy {
eachPlugin {
if (requested.id.namespace == 'com.meanwhileinhell.plugin') {
useModule('com.meanwhileinhell:gradle-plugin:1.0.0-SNAPSHOT')
}
}
}
repositories {
mavenLocal()
maven { url "https://repo.spring.io/milestone" }
maven { url "https://plugins.gradle.org/m2/" }
// Meanwhileinhell repo
maven {
url "s3://mvn.meanwhileinhell.com/releases"
credentials(AwsCredentials) {
accessKey s3_access_key
secretKey s3_access_secret
}
}
}
plugins {
...
...
}
}
Однако, удаляя settings.gradle
и перемещая этот блок в мой build.gradle.kts
(Kotlin DSL), кажется, ничего не делает. Я попытался обернуть
configurations {
all {
resolutionStrategy {
eachPlugin {
...
}
}
}
}
, а также
settings {
pluginManagement {
resolutionStrategy {
eachPlugin {
...
}
}
}
}
Я нашел SO-ответ, который использовал settingsEvaluated
, чтобы получить объект settings
, но опять же это был не go.
В настоящее время мой build.gradle.kts
выглядит следующим образом, без добавления какого-либо плагина из моего репо:
val springBootVersion: String by project
group = "com.meanwhileinhell.myapp"
version = "$version"
repositories {
mavenCentral()
mavenLocal()
maven ("https://repo.spring.io/snapshot")
maven ("https://repo.spring.io/milestone")
maven ("https://plugins.gradle.org/m2/")
maven {
url = uri("s3://mvn.meanwhileinhell.com/releases")
credentials(AwsCredentials::class) {
accessKey = (project.property("s3_access_key") as String)
secretKey = (project.property("s3_access_secret") as String)
}
}
}
plugins {
base
eclipse
idea
java
id("io.spring.dependency-management") version "1.0.9.RELEASE"
// Load but don't apply to root project
id("org.springframework.boot") version "1.5.14.RELEASE" apply false
}
dependencies {
...
}
Всякий раз, когда я пытаюсь добавить идентификатор плагина, например id("com.meanwhileinhell.plugin.hell2java") version "1.0.0-SNAPSHOT"
Я получаю сообщение об ошибке, которое выглядит так, будто оно даже не отображается в моем местоположении S3:
* What went wrong:
Plugin [id: 'com.meanwhileinhell.plugin.hell2java', version: '1.0.0-SNAPSHOT'] was not found in any of the following sources:
- Gradle Core Plugins (plugin is not in 'org.gradle' namespace)
- Plugin Repositories (could not resolve plugin artifact 'com.meanwhileinhell.plugin.hell2java:com.meanwhileinhell.plugin.hell2java.gradle.plugin:1.0.0-SNAPSHOT')
Searched in the following repositories:
Gradle Central Plugin Repository
Любая помощь по этому вопросу будет принята!
РЕДАКТИРОВАТЬ !!! ! -----------------------
Я только что нашел это в документации Gradle: https://docs.gradle.org/current/userguide/plugins.html#sec: plugin_management
Блок pluginManagement {} может появляться только в любом файле settings.gradle ....
Похоже, я ошибаюсь полностью, поэтому рассмотрим маршрут сценария инициализации.