Я разрабатываю мультиплатформенное приложение Kotlin с Compose для настольных компьютеров и хочу реализовать Auto-Updater. Моя архитектура состоит из двух частей:
[*] Основное приложение (Composeapp): проверяет новые версии на GitHub при запуске.
Отдельная программа обновления (Updater.jar): небольшая программа Kotlin/JVM, которая запущена основным применением для загрузки и установки новой версии. /> Для работы файл Updater.jar должен находиться в том же каталоге, что и. Exeme после установки (например, в C: \ Program Files \ Project \ ).
Я поместил updator.jar в Directory of My Daypop Module:
Код: Выделить всё
composeApp/src/desktopMain/resources/updater.jar
Однако, когда я строю установщик, используя задачу Gradle ./gradlew: Composeapp: packagemsi и устанавливать приложение, Updater.jar не находится в каталоге установки. Только файл .exe и время выполнения и app присутствуют.
Код: Выделить всё
// This code fails because updater.jar does not exist
val updaterJar = File(System.getProperty("user.dir"), "updater.jar")
if (!updaterJar.exists()) {
// ... error handling
}
< /code>
То, что я пробовал:
На основании различных руководств я пытался явно объединить файл в моем build.gradle.kts < /code>. Моя первая попытка состояла в том, чтобы добавить конфигурацию внутри Nativedistribitions
Код: Выделить всё
// In composeApp/build.gradle.kts
compose.desktop {
application {
mainClass = "de.dev.project.MainKt"
nativeDistributions {
packageName = "project"
// ... other settings ...
// FAILED ATTEMPT: This results in an 'Unresolved reference 'files'' error
files.from("src/desktopMain/resources/updater.jar") {
renameTo("updater.jar")
}
}
}
}
< /code>
Однако это приводит к ошибке неразрешенной ссылки «файлов файлов», поскольку блок файлов здесь кажется недействительным. < /p>
Мой вопрос:
Что является правильным и идиоматическим способом в Gradle для составления для проекта настольного проекта, чтобы обеспечить арбитражный файл (в конечном итоге. (рядом с .exe
Подробнее здесь: https://stackoverflow.com/questions/797 ... top-instal