具有非主要源集中的主类的Gradle应用程序插件

问题描述 投票:3回答:1

文档说

You can run the application by executing the run task (type: JavaExec). This will compile the main source set, and launch a new JVM with its classes (along with all runtime dependencies) as the classpath and using the specified main class. You can launch the application in debug mode with gradle run --debug-jvm (see JavaExec.setDebug(boolean)).

在我的例子中,主类不在主要的源集中,而是在jmh中(我想快速尝试一些事情,而不使用那里定义的类来通过JMH基础结构)。我还可以使用应用程序插件吗?

正如预期的那样,简单地使用./gradlew :benchmarks:run给出“无法找到或加载主类MyMainClass”。 :jmhRun(与其他任务类比)给出了“任务'jmhRun'在项目'基准'中找不到”。 :runJmh是一样的。

gradle
1个回答
1
投票

仍然不可能(Gradle 5.0),因为main源代码集的名称在org.gradle.api.plugins.ApplicationPlugin#addRunTask中是不可配置的。我在https://github.com/gradle/gradle/issues/8113那里创造了一个问题。

UPD:正如gradle问题中所建议的那样

tasks.named('run', JavaExec) {
    classpath = <wanted classpath>
}
© www.soinside.com 2019 - 2024. All rights reserved.