在 gradle 范围内,test继承自runtime. 您的测试代码排除了 minicluster 依赖项,因为运行时排除了它。
有关 java 插件的范围继承树,请参见此图:

您可能不想将全局排除添加到运行时配置中,而是希望将 spark 依赖项转换compileOnly为自 gradle 2.12 起可用的范围依赖项。
configurations {
compileOnly 'org.apache.spark:spark:2.11'
test 'org.apache.hadoop:hadoop-minicluster:2.7.2'
}
有关 gradle 作用域的更多信息,请参阅gradle 手册:
或者,您可以添加另一个从运行时继承的配置,并向其中添加排除项,然后将其用作 shadowJar 的基础。如果您想选择性地构建一个包含或不包含 spark 依赖项的 jar,这可能会有所帮助。您的测试将使用没有排除项的配置,但您打包的 jar 将不包含 spark 依赖项。
configurations {
sparkConfiguration {
extendsFrom runtime
exclude group: 'org.apache.hadoop'
exclude group: 'org.apache.spark'
}
}
task sparkExcludedJar(type: ShadowJar) {
group = "Shadow"
configurations = [project.configurations.sparkConfiguration]
classifier = 'sparkExcluded'
}