4

Gradle 如何在 JavaExec 类路径中包含 runtimeOnly 依赖项?例如,

子项目 foo:

dependencies {
    runtimeOnly files('libs/hello.jar')
}

子项目栏:

dependencies {
    compile project(':foo')
}

task execHello(type: JavaExec, dependsOn: 'compileJava') {      
     classpath = configurations.runtime         
     main 'myPackage.Hello'
}

主类 myPackage.Hello 在 libs/hello.jar 中定义,它是项目 foo 的 runtimeOnly 依赖项。

configuration.runtime 不包含 runtimeOnly 依赖项 hello.jar。如果我在项目 foo 中将 runtimeOnly 依赖项更改为 api 依赖项,它将起作用。

classpath = configurations.runtime + configuration.runtimeOnly

错误:runtimeOnly 无法显式解析。如何在 JavaExec 类路径中添加 hello.jar?

4

1 回答 1

7

runtime并且runtimeOnly用于声明依赖项。要使用依赖项,您应该runtimeClasspath按照https://docs.gradle.org/current/userguide/java_library_plugin.html#sec:java_library_configurations_graph上的文档使用配置。

于 2017-07-04T17:33:17.850 回答