¿Qué tipo de dependencia tiene el pepino kotlin?

Quiero usar las definiciones de pasos nativos de kotlin como :

package cucumber.runtime.kotlin.test; ... class LambdaStepdefs : En { init { Before { scenario: Scenario -> assertNotSame(this, lastInstance) lastInstance = this } Given("^this data table:$") { peopleTable: DataTable -> val people = peopleTable.asList(Person::class.java) assertEquals("Aslak", people[0].first) assertEquals("Hellesøy", people[0].last) } 

Donde Given toma una function y no es una anotación. No quiero usar el estilo Java como @Given("blabla") void blabla() { ... } .

Traté de importar el package del ejemplo:

 package vc.capper.cutest; import cucumber.runtime.kotlin.test class SomeStepDefs { Given("blabla") { } } 

Pero el package kotlin no se puede encontrar en kotlin .

Pensé que el io.cucumber:cucumber-jvm (artefacto) [ https://github.com/cucumber/cucumber-jvm/blob/master/pom.xml] viene con cucumber-kotlin-java8 , pero tampoco lo hace o no contiene dicho dicho.

Este es un extracto de mi pom.xml – algo falta, supongo, pero ¿qué?

Preludio:

 <properties> <java.version>1.8</java.version> <kotlin.version>1.1.2-2</kotlin.version> <spring-boot.version>1.5.7.RELEASE</spring-boot.version> <cucumber.version>2.0.1</cucumber.version> </properties> <dependencyManagement> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> ... </dependencyManagement> 

Dependencias:

 <dependencies> <dependency> <groupId>io.cucumber</groupId> <artifactId>cucumber-jvm</artifactId> <version>${cucumber.version}</version> <type>pom</type> </dependency> <dependency> <groupId>io.cucumber</groupId> <artifactId>cucumber-spring</artifactId> <version>${cucumber.version}</version> </dependency> <dependency> <groupId>io.cucumber</groupId> <artifactId>cucumber-junit</artifactId> <version>${cucumber.version}</version> <scope>test</scope> </dependency> <dependency> <groupId>org.jetbrains.kotlin</groupId> <artifactId>kotlin-stdlib-jre8</artifactId> <version>${kotlin.version}</version> </dependency> ... </dependencies> 

Actualización y aclaración:

Los packages que parecen faltar son cucumber.runtime.kotlin y cucumber.api.java8.En como puede ver en la captura de pantalla de IntelliJ:

perdidas

También puede ver la list de dependencies reales que utiliza el proyecto:

dependencias

    Parece que Given no es un DSL / método específico de Kotlin. Es una parte de cucumber.api.java8.En . Todo lo que tienes que hacer es extender tu class desde allí:

     package vc.capper.cutest; import cucumber.runtime.kotlin.test import cucumber.api.java8.En class SomeStepDefs : En { Given("blabla") { ... } }