Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

573
Vistas
How do I create an additional Kotlin SourceSet using Gradle with Kotlin DSL

I want to create a test lib source set, src/tlib/kotlin that "sits between" main and test. I have this, but I'm not sure why I would use java source dir for kotlin, and I need to get it depending on my main sources

sourceSets {
   create("tlib").java.srcDir("src/tlib/kotlin")
}

update

Calebs-MBP:phg-entity calebcushing$ ./gradlew build
e: Supertypes of the following classes cannot be resolved. Please make sure you have the required dependencies in the classpath:
    class phg.entity.AbstractEntityBase, unresolved supertypes: org.springframework.data.domain.Persistable
> Task :compileTlibKotlin FAILED

close

sourceSets {
    val main by getting
    val tlib by creating {
        java {
            srcDir("src/tlib/kotlin")
            compileClasspath += main.output
            runtimeClasspath += main.output
        }
    }
    val test by getting {
        java {
            compileClasspath += tlib.output
            runtimeClasspath += tlib.output
        }
    }
}

configurations {
    val compile by getting
    val runtime by getting
    val tlibCompile by getting {
        extendsFrom(compile)
    }
    val tlibRuntime by getting {
        extendsFrom(runtime)
    }
    val testCompile by getting {
        extendsFrom(tlibCompile)
    }
    val testRuntime by getting {
        extendsFrom(tlibRuntime)
    }
}

dependencies {
    implementation("${project.group}:constant:[0.1,1.0)")
    api("javax.validation:validation-api")
    api("javax.persistence:javax.persistence-api")
    api("org.springframework.data:spring-data-commons") // has the missing dependency
over 4 years ago · Santiago Trujillo
2 Respuestas
Responde la pregunta

0

A number of things are properly taken care of by the plugins, so the addition is really about configuring the sourceSet classpath and wiring configurations.

Here is a short answer showing the classpath config and one configuration extension:

sourceSets {
    val tlib by creating {
        // The kotlin plugin will by default recognise Kotlin sources in src/tlib/kotlin
        compileClasspath += sourceSets["main"].output
        runtimeClasspath += sourceSets["main"].output
    }
}

configurations {
    val tlibImplementation by getting {
        extendsFrom(configurations["implementation"])
    }
}
over 4 years ago · Santiago Trujillo Denunciar

0

There a similar question for Groovy
How do I add a new sourceset to Gradle?


sourceSets {
  val main by getting
  val test by getting
  val tlib by creating {
    java {
      srcDir("src/tlib/kotlin")
      compileClasspath += main.output + test.output
      runtimeClasspath += main.output + test.output
    }
  }
}

configurations {
  val testCompile by getting
  val testRuntime by getting
  val tlibCompile by getting {
    extendsFrom(testCompile)
  }
  val tlibRuntime by getting {
    extendsFrom(testRuntime)
  }
}
over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda