我配置了一个gradle项目,以便在我运行./gradlew build
时构建子模块并且它完美无瑕。但当我移动到子目录并运行像./gradlew :mymodule:build
这样的子模块时,我收到了错误
Project 'mymodule' not found in root project 'mymodule'.
我的成绩根配置:
group 'com.example.core'
version '1.0-SNAPSHOT'
allprojects {
apply plugin: 'java'
version = '1.0'
}
subprojects {
repositories {
mavenLocal()
}
dependencyManagement {
imports {
mavenBom "org.springframework.boot:spring-boot-dependencies:${spring_boot_version}"
}
}
dependencies {
compile 'org.springframework.boot:spring-boot-starter-web'
}
}
project(':mymodule1') {
apply plugin: 'application'
bootRepackage {
mainClass = 'com.example.App'
}
springBoot {
mainClass = 'com.example.App'
executable = true
buildInfo()
}
bootRun {
addResources = false
}
task stage(dependsOn: 'bootRepackage') {
}
dependencies {
compile project(':mymodule2')
}
}
project(':mymodule2') {
apply plugin: 'application'
// config module
}
sourceCompatibility = 1.8
targetCompatibility = 1.8
buildscript {
repositories {
// repos
}
dependencies {
// deps
}
}
defaultTasks 'bootRun'
repositories {
mavenCentral()
}
clean {
delete "target"
}
task cleanResources(type: Delete) {
delete 'build/resources'
}
task wrapper(type: Wrapper) {
gradleVersion = '4.0'
}
bootRepackage.enabled = false
我在子模块中的模块配置几乎为空:
group 'com.example.proj'
version '1.0-SNAPSHOT'
我建议原因是缺少子模块的运行配置。那么问题是如何指出子模块build.gralde
使用父配置?
答案 0 :(得分:0)
无需进入子目录,juste从根目录运行./gradlew :mymodule:build
。
:mymodule
前缀已指示您要为目标子项目运行指定的任务(此处为build
)(此处为mymodule
)
答案 1 :(得分:0)
我发现了这个问题。
问题在于IntelliJ IDEA中项目的错误自动配置。
它配置如下:
但这需要这个