Как скомпилировать проект Java+Kotlin с помощью Maven?JAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Как скомпилировать проект Java+Kotlin с помощью Maven?

Сообщение Anonymous »

Я пытаюсь скомпилировать проект maven, в котором есть классы Kotlin, ссылающиеся на классы Java. Вот часть моего родительского POM:

Код: Выделить всё

...


org.jetbrains.kotlin
kotlin-stdlib
${kotlin.version}


...

org.apache.maven.plugins
maven-compiler-plugin
${compiler-plugin-version}

${java-version}
${java-version}
${project.build.sourceEncoding}




kotlin-maven-plugin
org.jetbrains.kotlin
${kotlin.plugin.version}



compile
process-sources

compile




test-compile
process-test-sources

test-compile





false


И связанные части дочернего POM:

Код: Выделить всё

org.jetbrains.kotlin
kotlin-stdlib


...

kotlin-maven-plugin
org.jetbrains.kotlin


${project.basedir}/src/main/kotlin



И класс Kotlin:

Код: Выделить всё

Stateless
open class DummyServiceImpl : DummyService {

PersistenceContext(unitName = Consts.UNIT_NAME)
private val em: EntityManager? = null

override fun get(id: Long?): Dummy {
return em!!.find(javaClass(), id)
}

override fun sayHi(): String {
return "Dummy service says \"Hi!\"."
}
}

Код: Выделить всё

DummyServiceКлассы 
и Consts — это классы Java, находящиеся в том же модуле, что и DummyServiceImpl.
Поэтому, когда я компилирую модуль, содержащий DummyServiceImpl, с помощью Maven, это выглядит следующим образом:< /p>

Код: Выделить всё

[error] C:\somepath\service\DummyServiceImpl.kt: (14, 31) Unresolved reference: DummyService
[error] C:\somepath\service\DummyServiceImpl.kt: (16, 35) Unresolved reference: Consts
Если я переключу фазу выполнения плагина Kotlin на компиляцию, то, как и ожидалось, произойдет сбой, если есть ссылки из Java на классы Kotlin:

Код: Выделить всё

[ERROR] /C:/somepath/service/impl/DummyServiceClientImpl.java:[5,27] cannot find symbol
[ERROR] symbol:   class DummyServiceImpl
И что с этим делать? Обратите внимание, что сборка с помощью make из IDEA проходит отлично.

Подробнее здесь: https://stackoverflow.com/questions/293 ... sing-maven
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»