Gradle jar包含依赖项中的类

时间:2019-04-08 09:49:54

标签: java gradle

我有一个项目,其中包含多个模块,例如utils和core。
settings.gradle

include 'utils', 'core'

core / build.gradle

jar {
    destinationDir = file(LIB_DIR)
    manifest {
        attributes(
                'Main-Class': 'com.cohesity.spotlight.Main'
        )
    }
}

dependencies {
    compile files("$buildDir/libs/utils.jar")
}

core.jar包含来自utils.jar的类。为什么会这样?

1 个答案:

答案 0 :(得分:0)

我想我知道这个! (我本人对此感到困惑)

我猜utils.jar中有Java源文件。默认情况下,javac还将与来自src/main/java的源一起编译这些“隐式”源。要停止此操作,您需要将-implicit:none传递给编译器。

例如:

tasks.withType(JavaCompile) {
   options.compilerArgs << '-implicit:none' 
} 

请参见https://docs.oracle.com/javase/7/docs/technotes/tools/solaris/javac.html(搜索“隐式”)