【发布时间】:2021-01-05 02:02:11
【问题描述】:
我来自 Maven 背景,对 Gradle 非常陌生。以下是上下文。
我有一个图书馆项目
库启动器
需要导入到一个
图书馆用户
项目。
两者都是 Spring Boot 项目,LibraryUser 的 build.gradle 抱怨
无法使用 Gradle 分发运行分阶段构建操作 'https://services.gradle.org/distributions/gradle-6.6.1-bin.zip'。 构建文件 'C:\WORK\LEARN\User\LibraryStarter\build.gradle' 行:2 解析插件时出错 [id: 'org.springframework.boot',版本: '2.3.4.RELEASE'] 插件的插件请求已经在类路径上 不得包含版本
我尝试申请suggestion,但没有帮助。
保留两个 build.gradle 文件以供参考。
对于LibraryStarter
plugins {
id 'org.springframework.boot' version '2.3.4.RELEASE'
id 'io.spring.dependency-management' version '1.0.10.RELEASE'
id 'java'
}
group = 'com.sample.library.starter'
version = '0.0.1-SNAPSHOT'
sourceCompatibility = '1.8'
repositories {
mavenCentral()
}
dependencies {
implementation 'org.springframework.boot:spring-boot-starter'
implementation project(":MyLibrary")
testImplementation('org.springframework.boot:spring-boot-starter-test') {
exclude group: 'org.junit.vintage', module: 'junit-vintage-engine'
}
}
test {
useJUnitPlatform()
}
对于图书馆用户
plugins {
id 'org.springframework.boot' version '2.3.4.RELEASE'
id 'io.spring.dependency-management' version '1.0.10.RELEASE'
id 'java'
}
group = 'com.sample.library.user'
version = '0.0.1-SNAPSHOT'
sourceCompatibility = '1.8'
repositories {
mavenCentral()
}
dependencies {
implementation 'org.springframework.boot:spring-boot-starter'
implementation 'org.springframework.boot:spring-boot-starter-web'
implementation project(":LibraryStarter")
testImplementation('org.springframework.boot:spring-boot-starter-test') {
exclude group: 'org.junit.vintage', module: 'junit-vintage-engine'
}
}
test {
useJUnitPlatform()
}
任何帮助将不胜感激。
#################### 更新################
根据@Onur 在 cmets 中的要求更新了 build.gradle。但是 spring 依赖项从类路径中删除并导致类中的编译错误。
apply plugin: 'java'
group = 'com.sample.library.user'
version = '0.0.1-SNAPSHOT'
sourceCompatibility = '1.8'
repositories {
mavenCentral()
}
dependencies {
implementation project(":LibraryStarter")
implementation 'org.springframework.boot:spring-boot-starter'
testImplementation('org.springframework.boot:spring-boot-starter-test') {
exclude group: 'org.junit.vintage', module: 'junit-vintage-engine'
}
}
test {
useJUnitPlatform()
}
######################更新########################
我让它工作了。但不确定我是否做得对。
从 LibraryStarter 中移除插件并添加以下依赖项。
实施组:'org.springframework',名称: 'spring-context',版本:“${spring_version}”实现 组:'org.springframework.boot',名称:'spring-boot-autoconfigure', 版本:“${springboot_version}” 实现组: 'org.springframework.cloud',名称:'spring-cloud-context' 实施组:'org.springframework.cloud',名称: '春云公地'
如果您认为这是正确的方法,我可以将其发布为答案。否则我仍然愿意接受您的建议。
渴望了解处理这种情况的最佳和有效方法,而不是应用任何补丁!
【问题讨论】:
-
您在两个项目中使用相同的依赖项。尝试将相同的依赖项放在一个共同的地方。查看stackoverflow.com/questions/60070739/…
标签: java spring-boot gradle