Gradle Как включить зависимости runtimeOnly в путь к классам JavaExec?

Gradle Как включить зависимости runtimeOnly в путь к классам JavaExec? Например,

подпроект 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, который является зависимостью runtimeOnly для проекта foo.

configurations.runtime не содержит зависимости runtimeOnly hello.jar. Если я изменил зависимость runtimeOnly как api-зависимость в проекте foo, она будет работать.

classpath = configurations.runtime + configuration.runtimeOnly

Ошибка: runtimeOnly не может быть явно разрешена. Как добавить hello.jar в путь к классам JavaExec?

1 ответ

Решение

runtime а также runtimeOnly предназначены для объявления зависимостей. Чтобы использовать зависимости, вы должны использовать конфигурацию runtimeClasspath согласно документам на https://docs.gradle.org/current/userguide/java_library_plugin.html.

Другие вопросы по тегам