Aus*_*own 8 java groovy gradle
对于多项目/多模块 Gradle 构建,我有一个非常基本的用例。我最终需要的结构并不比官方 Gradle 文档中提出的用于声明子项目之间的依赖关系更复杂。
在这里复制他们的文档,我们有这个项目结构:
.
??? buildSrc
? ...
??? api
? ??? src
? ? ???...
? ??? build.gradle
??? services
? ??? person-service
? ??? src
? ? ???...
? ??? build.gradle
??? shared
? ??? src
? ? ???...
? ??? build.gradle
??? settings.gradle
Run Code Online (Sandbox Code Playgroud)
这些构建文件:
// settings.gradle
rootProject.name = 'dependencies-java'
include 'api', 'shared', 'services:person-service'
// buildSrc/src/main/groovy/myproject.java-conventions.gradle
plugins {
id 'java'
}
group = 'com.example'
version = '1.0'
repositories {
mavenCentral()
}
dependencies {
testImplementation "junit:junit:4.13"
}
// api/build.gradle
plugins {
id 'myproject.java-conventions'
}
dependencies {
implementation project(':shared')
}
shared/build.gradle
plugins {
id 'myproject.java-conventions'
}
// services/person-service/build.gradle
plugins {
id 'myproject.java-conventions'
}
dependencies {
implementation project(':shared')
implementation project(':api')
}
Run Code Online (Sandbox Code Playgroud)
但是,当我实际尝试此操作并gradle build从项目根目录运行时,出现以下错误:
Plugin [id: 'myproject.java-conventions'] was not found in any of the following sources:
- Gradle Core Plugins (plugin is not in 'org.gradle' namespace)
- Plugin Repositories (plugin dependency must include a version number for this source)
Run Code Online (Sandbox Code Playgroud)
只是为了踢球,我尝试添加一个版本,但可以预见的是,Gradle 也同样脾气暴躁,并说它无法解决这个工件。我究竟做错了什么?
我的 Gradle 版本信息:
------------------------------------------------------------
Gradle 6.5.1
------------------------------------------------------------
Build time: 2020-06-30 06:32:47 UTC
Revision: 66bc713f7169626a7f0134bf452abde51550ea0a
Kotlin: 1.3.72
Groovy: 2.5.11
Ant: Apache Ant(TM) version 1.10.7 compiled on September 1 2019
JVM: 11.0.8 (Oracle Corporation 11.0.8+10)
OS: Windows 10 10.0 amd64
Run Code Online (Sandbox Code Playgroud)
在我看来,您发现文档有问题。
buildSrc/src/main/groovy/myproject.java-conventions.gradle被调用的文件声明了所谓的预编译脚本插件。为此,您必须在项目中应用名为groovy-gradle-plugin(对于 Groovy 插件)的插件buildSrc:
# buildSrc/build.gradle
plugins {
id 'groovy-gradle-plugin'
}
Run Code Online (Sandbox Code Playgroud)
在此之后,它应该能够找到您的自定义myproject.java-conventions插件。如果是这样,您可以在Gradle 问题跟踪器上创建一个问题,以建议他们将上述代码段添加到项目依赖项文档中的示例中。
| 归档时间: |
|
| 查看次数: |
1745 次 |
| 最近记录: |