使用插件DSL和buildSrc中的约定插件创建springboot gradle多模块库项目

wtlkbnrh  于 2022-12-04  发布在  Spring
关注(0)|答案(1)|浏览(172)

我正在尝试构建多模块Gradle库。我正在尝试遵循我在官方文档中读到的内容。我在一家公司工作,该公司有自己的nexus存储库,用于存储Spring和其他库
我的项目结构如下多项目
libA
│ ──建筑分级
libB文件
│ ──建筑分级
建立来源
│ ──建筑分级
/src/groovy中的一个或多个
多项目.通用约定.分级
│ ──设置.分级
这个项目涉及到对不同的库使用spring Boot ,依赖关系几乎是一样的。
构建源/构建等级

plugins { 
    id 'groovy-gradle-plugin' 
} 

repositories { 
    gradlePluginPortal() 
}

buildSrc/多项目.通用约定.gradle

plugins { 
    id 'java-library' 
    id 'maven-publish' 
    id 'org.springframework.boot' 
} 
repositories { 
    mavenCentral()
} 
dependencies { 
     implementation group: 'org.springframework.boot:spring-boot-gradle-plugin'
      implementation 'org.springframework.boot:spring-boot-starter' 
      implementation 'org.springframework.boot:spring-boot-starter-aop' 
      implementation 'org.springframework.ws:spring-ws-core' 
      implementation 'org.apache.httpcomponents:httpclient:4.5.13' 
      implementation 'org.springframework.retry:spring-retry:1.3.1' 
      implementation 'javax.cache:cache-api:1.1.1' 
      implementation 'org.ehcache:ehcache:3.10.0' 
      implementation 'com.fasterxml.jackson.core:jackson-databind:2.13.3' 
      testImplementation 'org.springframework.boot:spring-boot-starter-test' 
}

 tasks.named('test') { 
    useJUnitPlatform()
 }

现在我尝试在一个子模块中使用上述插件,比如libA libA/build.gradle

plugins { 
id("multiproject.common-conventions")
id 'org.springframework.boot' version
}

我得到以下异常

org.gradle.api.plugins.UnknownPluginException: Plugin with id 'org.springframework.boot' not found.

当我将版本添加到2.6.4时,得到Invalid plugin request [id: 'org.springframework.boot', version: '2.7.1']. Plugin requests from precompiled scripts must not include a version number. Please remove the version from the offending request and make sure the module containing the requested plugin 'org.springframework.boot' is an implementation dependency.
如何使用buildSrc文件夹和插件DSL设置多模块gradle库以使用通用约定插件?我使用的是gradle 7.3版本。

xv8emn3q

xv8emn3q1#

查看Gradle文档www.example.com的这一部分https://docs.gradle.org/current/userguide/custom_plugins.html#applying_external_plugins_in_precompiled_script_plugins。如此处所述,为了在预编译脚本插件(您的multiproject.common-conventions.gradle)中应用外部插件(在您的示例中为spring-boot-gradle-plugin),必须将其添加到插件构建文件(您的buildSrc/build.gradle文件)中插件项目的实现类路径中。
构建源/构建等级

plugins {
  id 'groovy-gradle-plugin'
}

repositories {
  mavenCentral()
}

dependencies {
  implementation('org.springframework.boot:spring-boot-gradle-plugin:3.0.0')
}

相关问题