Как добавить проект как зависимость модуля [jar]JAVA

Программисты JAVA общаются здесь
Ответить
Гость
 Как добавить проект как зависимость модуля [jar]

Сообщение Гость »


Обновление:
В ходе дальнейшего расследования я обнаружил проблему
https://youtrack.jetbrains.com/issue/KT- 66523/jvmMain-resources-classpath-is-not-added-when-using-the-multiplatform-project-as-a-module
Путь к классу ресурса не добавляется при использовании путем добавления

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

    implementation(project(":sevenzipJavm"))
но если jar-файл добавлен, я могу получить доступ к ресурсам.
Итак, теперь, если проблема не устранена JetBrains, лучшим решением на данный момент является использование проекта как jar-файла. вместо классов.
но я нашел статическое связывание с jar

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

  implementation(files("../sevenzipJavm/build/libs/sevenzipJavm.jar"))
Проблема в том, что он не собирается из проекта и ожидает построенный jar. Это приводит к следующему:
  • Мне нужно вручную собрать jar из другого проекта, а это не то, что мне нужно.
  • Изменения не отражаются автоматически
Поэтому я также обновил название проблемы.
Опять же, я не показываю, как добавить как классы, но как jar, но не статически.

Старый для справки:
Кажется, я не могу получить доступ ресурсы src\jvmMain\resources\a.txt в jvmMain многоплатформенного проекта.
gradle kts:

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

plugins {
alias(libs.plugins.kotlinMultiplatform)
alias(libs.plugins.android.library)
//    id("module.publication")
}

kotlin {
applyDefaultHierarchyTemplate()
jvm()

androidTarget {

publishLibraryVariants("release")
compilations.all {
kotlinOptions {
jvmTarget = "1.8"
}
}
}

//    iosX64()
//    iosArm64()
//    iosSimulatorArm64()
//    linuxX64()

sourceSets {

commonMain.dependencies {

}

commonTest.dependencies {
implementation(libs.kotlin.test)
}

androidMain.dependencies {
}

jvmMain {
dependencies {
}

}

}
}

android {
namespace = "org.jetbrains.kotlinx.multiplatform.library.sevenZip"
compileSdk = libs.versions.android.compileSdk.get().toInt()
defaultConfig {
minSdk = libs.versions.android.minSdk.get().toInt()
}
}
пример:

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

        val message =
Thread.currentThread().contextClassLoader.getResource("a.txt")?.readText()
println(message)
Can anyone tell me what's wrong here? and how to fix it.
This code works on pure JVM projects if is not inside multiplatform.


Источник: https://stackoverflow.com/questions/781 ... -depndency
Ответить

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

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

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

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

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