This repository was archived by the owner on Aug 19, 2020. It is now read-only.

Description
Expected Behavior
Should be able to override mainClassName for a task.
Current Behavior
Uses the application's mainClassName - and does not use task's overridden mainClassName.
Currently it's using SomeService.kt, and I want it to be RunSomeServiceLocally.kt
Context
I'm trying to use a gradle task to run a local instance of a file which is found in the test directory.
Consider the following folder structure:
src/main/kotlin/com.service/SomeService.kt
src/test/kotlin/com.service/RunSomeServiceLocally.kt
Basically I want to make it so that when I do ./gradlew run - it uses the RunSomeServiceLocally.kt file.
Steps to Reproduce (for bugs)
Below is how I have configured the build.gradle.kts file:
application {
mainClassName = "com.service.SomeService"
}
repositories {
mavenLocal()
}
plugins {
kotlin("jvm") version "1.3.72"
application
}
tasks {
named<JavaExec>("run").configure {
main = "com.service.RunSomeServiceLocally"
classpath = sourceSets.test.get().runtimeClasspath
}
}
Your Environment
gradle --version
: Gradle 6.0.1
- Version of IntelliJ: #IU-201.6668.121
- Version of the Kotlin Plugin used in IntelliJ: 1.3.72
edit: formatting