Java gradle中的多模块项目在
我正在使用gradle 5.1.1&在我的多模块项目中有以下配置Java gradle中的多模块项目在,java,gradle,multi-module,Java,Gradle,Multi Module,我正在使用gradle 5.1.1&在我的多模块项目中有以下配置 settings.gradle rootProject.name = 'multi-module-test' include 'mock-api', 'mock-impl' group 'com.acme' version '1.0.0-SNAPSHOT' subprojects { apply plugin: 'java' sourceCompatibility = 1.8 repositories {
settings.gradle
rootProject.name = 'multi-module-test'
include 'mock-api', 'mock-impl'
group 'com.acme'
version '1.0.0-SNAPSHOT'
subprojects {
apply plugin: 'java'
sourceCompatibility = 1.8
repositories {
mavenCentral()
}
}
project(':mock-impl') {
dependencies {
// this fails
// api project(':mock-api')
// this succeeds
implementation project(':mock-api')
}
}
build.gradle
rootProject.name = 'multi-module-test'
include 'mock-api', 'mock-impl'
group 'com.acme'
version '1.0.0-SNAPSHOT'
subprojects {
apply plugin: 'java'
sourceCompatibility = 1.8
repositories {
mavenCentral()
}
}
project(':mock-impl') {
dependencies {
// this fails
// api project(':mock-api')
// this succeeds
implementation project(':mock-api')
}
}
出于某种奇怪的原因,如果我使用api
configuration,那么构建会因为这个原因而失败
在org.gradle.api.internal.artifacts.dsl.dependencies.DefaultDependencyHandler类型的对象上找不到参数[project:mock api']的方法api()
但当我使用实现
配置时,它不会失败
你知道为什么会这样吗?你会面临这个问题,因为你没有使用java库
插件。看看gradle文档,它说
标准Java插件和Java
库插件是后者引入了API的概念
接触消费者
因此,尝试包括
plugins {
id 'java-library'
}
参考: