我有一个 build.gradle
plugins {
id {some plugin for all projects}
id "com.diffplug.spotless" version "5.1.1"
}
然后我有一个 allprojects {} 部分,它定义了一个 apply plugin: 'jacoco' 和一个 subprojects {} 部分,它声明了 apply plugin: 'java' 和其他一些
立即添加一尘不染的东西和错误,发现它找不到 java 插件,所以我修改所有插件以像这样在插件部分
plugins {
id "java"
id "checkstyle"
id "eclipse"
id "idea"
id "jacoco"
id "com.diffplug.spotless" version "5.1.1"
id "com.dorongold.task-tree" version "1.5" //This prints out a task tree (pretty print)
}
这会导致这个错误
Could not find method testCompile() for arguments [junit:junit:4.11] on object of type org.gradle.api.internal.artifacts.dsl.dependencies.DefaultDependencyHandler.
所以由于某种原因,java插件丢失了。我无法在这里找到正确的组合来将所有内容迁移到这种新的插件部分格式。
我怎么做?我随机尝试在所有项目和子项目中放置一个插件部分,但这会导致这个新错误
Could not find method plugins() for arguments [build_d8c2jgy4ua1m0vkv9kmvgefmc$_run_closure2$_closure5@62337fda] on root project 'providersvc-all' of type org.gradle.api.Project
这个新的插件部分是如何工作的?如果不破坏一切,我似乎无法迁移。我只希望 java 插件、testCompile 和一尘不染现在一起玩得很好
编辑(忘记附加不起作用的完整修剪文件):
plugins {
id "java"
id "com.diffplug.spotless" version "5.1.1"
}
ext {
//dependency versions every project usees so we version in one location all jars(less jar hell this way)
deps = [
'junit': 'junit:junit:4.11'
]
}
allprojects {
repositories {
jcenter()
mavenCentral()
maven {
//webpieces VERSIONED snapshots so you can lock on a snapshot
url "https://dl.bintray.com/deanhiller/maven"
}
//For testing locally
maven {
url uri('/tmp/myRepo/')
}
}
}
subprojects {
dependencies {
testCompile deps['junit']
}
}
谢谢,院长