gradle / kotlin-dsl-samples

Samples builds using the Gradle Kotlin DSL
https://gradle.org/kotlin/
Other
3.71k stars 434 forks source link

No clear sample/cannot override mainClassName for a task #1401

Open NoPhaseNoKill opened 4 years ago

NoPhaseNoKill commented 4 years ago

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