2017-02-17 15 views
1

Я использую kotlin и java с весенним ботинком для разработки моего проекта. Мой инструмент сборки Gradle, задача определяется следующим образом:Как добавить класс kotlin в gradle Задача JavaCompile

configurations { 
    providedRuntime 
    jpametamodel 
} 

dependencies { 
    jpametamodel ('org.hibernate:hibernate-jpamodelgen:4.3.11.Final') 
} 

task generateMetaModel(type: JavaCompile, group: 'build', description: 'metamodel generate') { 

    source = sourceSets.main.java 
    classpath = configurations.compile + configurations.jpametamodel 
    options.compilerArgs = ["-proc:only"] 
    destinationDir = sourceSets.generated.java.srcDirs.iterator().next() 

    doFirst { 
     delete(sourceSets.generated.java.srcDirs) 
    } 
} 

Эта задача работает из класса Котлин, но если добавить Котлин класс, задача не может работать, бросить следующие ошибки:

Hibernate JPA 2 Static-Metamodel Generator 4.3.11.Final 
/.../src/main/java/com/app/web/rest/UserResource.java:18: 
Cannot find ..... 
import com.app.web.rest.dto.SimpleUser; 
         ^
Symbol: Class SimpleUser 
Position: Package com.app.web.rest.dto 

SimpleUser определяется в Котлин файле:

SimpleUser.kt 
data class SimpleUser(val str:String) 
+0

FYI вам не нужно генерировать метамодель, если вы этого не хотите - см. [Kotlin-jpa-specification-dsl] (https://github.com/consoleau/kotlin-jpa-specification- dsl) –

+0

Мета-модель используется в моем другом Java-коде. – Exia

ответ

0

генератор мета-модель Hibernate реализован в виде процессора аннотаций JSR 269. При использовании Kotlin вам необходимо включить обработку аннотации явно applying the kapt compiler plugin. Когда вы это сделаете, вы обнаружите, что метамодель генерируется для объектов Kotlin.

 Смежные вопросы

  • Нет связанных вопросов^_^