当前位置: 首页 > 知识库问答 >
问题:

将gradle项目导入到另一个项目时的插件错误

沈淇
2023-03-14

我来自Maven背景,对Gradle非常陌生。以下是上下文。

我有一个图书馆项目

LibraryStarter

需要将其导入到

图书馆用户

项目。

这两个都是spring boot的项目和建筑

无法使用分级分发“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”]类路径上已有的插件请求不能包含版本

我试着应用这个建议,但没有帮助。

保留两个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()
}

对于LibraryUser

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在评论中的请求更新了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-autocconfigure”,版本:“${springboot_version}”实现组:“org.springframework.cloud”,名称:“spring-cloud-context”实现组:“org.springframework.cloud”,名称:“spring-cloud-commons”

如果你认为这是正确的做法,我可以贴出来作为答案。否则我仍然欢迎你的建议。

渴望知道处理这种情况的最佳和有效的方法,而不是应用任何补丁!

共有1个答案

洪梓
2023-03-14

如果您模块结构类似于

root (LibraryUser)
 |__build.gradle
 |__sub-project (LibraryStarter)
    |__build.gradle

然后在root build.gradle中

plugins {
    id 'org.springframework.boot'  version '2.3.4.RELEASE'
    id 'io.spring.dependency-management' version '1.0.10.RELEASE'
    id 'java'
}

allprojects {
    apply plugin: 'io.spring.dependency-management'
    apply plugin: 'org.springframework.boot'
}

不在子项目中添加(删除)插件部分

 类似资料:
  • 这是我第一次使用gradle,我正在尝试将gradle项目导入Eclipse。 EclipseJavaWeb开发人员的EE IDE。版本:光子发布(4.8.0)构建id:20180619-1200操作系统: Windows 10, v.10.0,x86_64/win32Java版本: 1.8.0_181 使用导入“现有Gradle项目”。。我在电脑上出错了 org.gradle.tooling.构

  • 我有以下两个项目: 使用Android Stuido 0.8.9开发的Android项目 使用IntelliJ IDEA和Gradle开发的纯Java库项目 我想做的是将Java库项目作为一个模块添加到我的Android项目中 我通过选择 null 11:36:42 FileNotFoundException:C:\users\xxxxx\AndroidStudioProjects\myAndro

  • 知道为什么会这样吗?我的同事可以毫无问题地将项目导入他们的IntelliJ。 单击不执行任何操作。 系统: null

  • 是否有办法将GradleJava项目导入IntelliJ 2017.2. x并应用一些设置,例如 代码样式 vcs设置 从Gradle在项目层面? 我注意到例如Grails框架使用了idea-gradle-plugin,但这只能与Gradle任务结合使用。 我不想使用Gradle任务生成IntelliJ项目文件。每当我导入文件。 这可能吗?

  • 我正试图将一个libgdx项目(桌面、ios和android)导入到我mac上的eclipse中,我在本地的git存储库中。 当我试图将我的项目导入到eclipse(导入>>Gradle>>Gradle项目,然后为整个libgdx项目添加我的根文件夹)时,我试图“构建模型”,但随后我得到了一个错误:

  • 问题内容: 我有两个名为和的项目。 这两个项目都是,并且都具有一个父项目名称s。 我在项目。 我有一个具有类的它具有一个向我返回消息“ ”的方法。 我想在中导入以便Bean可以在项目中的控制器中使用。 项目中有一个项目。 因此,请告诉我如何将一个项目导入另一个项目,以便只需导入即可将first的所有bean导入另一个项目? 我不想重写所有。 问题答案: