Как стать автором
Обновить
-3
0

программист

Отправить сообщение

Пишу на котлине, система сборки gradle. Для сборки использую shadowJar.
Это почти рабочий пример, за исключение некоторых nba-кусочков

plugins {
    application
    id("java")
    kotlin("jvm") version "1.7.20"
    kotlin("plugin.serialization") version "1.7.20"
    id("com.github.johnrengelman.shadow") version "5.2.0"
}

dependencies {
    implementation("org.jetbrains.kotlin:kotlin-stdlib-jdk8:$kotlin_version")
    implementation("org.jetbrains.exposed:exposed:$exposed_version")
    implementation("org.postgresql:postgresql:$postgresql_version")
    implementation("com.rabbitmq:amqp-client:latest.release")
    implementation("org.codehaus.groovy:groovy-all:3.0.9")
    implementation("ch.qos.logback:logback-classic:$logback_version")
    implementation("no.tornado:tornadofx:1.7.19")
    implementation("org.jetbrains.kotlinx:kotlinx-serialization-json:$kotlinx_serialization_version")
    implementation("org.usb4java:usb4java:1.3.0")
    implementation(fileTree("../libs"))  // тут лежат библиотеки javafx
}

sourceSets.main {
    java.srcDirs(
      // тут пути к исходникам
    )
    resources.srcDirs(
      // тут пути к ресурсам
    )
}

application {
    mainClassName = "ru.AAA.AAA.MainAbdKt"
}

tasks {

    shadowJar {
        manifest {
            attributes["mainClassName"] = "ru.AAA.AAA.MainAbdKt"
            attributes["Company"] = "AAA"
            attributes["Implementation-Version"] = "6.0 build $build от ${formatter.format(LocalDateTime.now())}"
        }
    }
    compileKotlin {
        kotlinOptions.jvmTarget = "1.8"
    }
    compileTestKotlin {
        kotlinOptions.jvmTarget = "1.8"
    }
}

100% вы неправильно используете эти инструменты. Мои fatjar с javafx, usb, rabbitmq, postgresql, блекджеком и девушками не выходят за 50мб.
Хотя делфийское приложение с тем же функционалом - 4мб ((

А лучше сразу подключить com.github.johnrengelman.shadow, и настроить его так, как нужно. Можно сразу нужную версию FX запаковать

@Query(
"""select * from jgproj_api.f_search_project_by_name(
p_search_text => cast(:search_text as text),
p_user_id => cast(cast(:user_id as text) as bigint),
p_offset=> :offset,
p_limit=> :limit,
p_sort=> cast(:sort as text))""",
nativeQuery = true
)

Господа, но ведь это жесть неподдерживаемая! У exposed-а ведь есть мощная dsl, которая сильно помогает не ошибиться в названии поля, и в случае каких-либо правок в слое базы, весь ошибочны код даже не скомпилится. Почему здесь вы такой подход не использовали?

Жаль, что обошли внимание Kotlin/JS. Очень интересно было бы пообщаться с соратниками по грабельному полю

Не так всё однозначно.. Вы можете привести пример языка, который строит нативный exe в считанные секунды? Пишу в основном под десктоп, и это прям боль, ждать когда сборщик соизволит закончить работу. Что ява, что котлин, что qt, что электрон, все тормознутые донельзя. Плюс размер бинарников какой-то умопомрачительный.
А родная старая делфа - нажмёшь F9, пара секунд и форма на экране. Как же мне этого не хватает.

Например, неработающий try catch вокруг запуска корутины. Почему нельзя было эту обёртку заставить работать как supervisorjob, зачем нужна ещё одна сущность?

Ну а ошибки в корутинах в kotlin/js это прям совсем боль. В ошибку вываливатся немеряного размера стек, который НЕ СОДЕРЖИТ информацию о ошибке. Удобно, да.

И нормальную обработку ошибок в корутинах в 31 релизе. Jav-ишники должны тоже страдать, как и котлинщики

Не планируется сделать нормальной обработку ошибок при использовании корутин? Это ведь бред - народ выпускает тучу инструкция и видео о том, почему обработка ошибок сделана так криво и как под это подстроится! "Тут смотрим, тут не смотрим, тут селёдку заворачивали" (с)

Одна из главных статей расхода - именно датчики СО2, они по 2200р. Самая большая статья расходов - вытяжной вентилятор на каждую комнату, они по 3500р. Далее по цене идёт шумоглушитель по 1100р. Все остальное (ардуинки, бп, сервы, датчики температуры и влажности) стоит копейки

Можно ещё одно уточнение : что значит "ручками"? На github-е есть какой нибудь минимальный пример с compose, чтоб в exe/appimage собирался? Чтоб получить обыкновенное, стандартное, десктопное приложение. Примерно как на delphi..

Разрешите вопрос для уточнения? Полный натив десктоп для windows/linux - это что: fat.jar или прям exe/appimage?

for (sensorId in 0 until sensors.length()) {

Это чтоб враг не догадался? )) Он-то думает, что sensorId - это идентификатор, а это просто декрементный счётчик

Посмотрел базу. Для многих есть :ФИО, телефон, e-mail, адрес, на сколько рублей заказал .

Очень интересно смотреть на соседей, можно узнать неожиданных мажоров ))

Как работающий на JavaFx более 5 лет, сильно рекомендую запаковать все требуемые библиотеки javafx прям в jar. Этим вы упростите себе жизнь, т.к. недокументированные особенности и баги меняются от версии к версии и то, что на вашей либерике работает нормально, на следующей либерике может поломаться.

Странное решение на профилях из леруа, они же ну прям совсем никакущие ни на жёсткость, ни на кручение. Почему бы не использовать правильные конструкционные профиля, которые и жёстче, и есть всяческий крепёж-уголки?
Если сотрудник не нажмет «Уйти на обед», то у него будет учитываться время до того времени, как он нажмет «Окончить работу».

Вот про это и речь ) Можно поднять KPI, просто «забыв» что-то сделать.
А если он не нажмёт «Окончить работу»? Будет вкалывать круглосуточно?
Прям рекомендую изучить тему по сторонним УРВ (да хотя бы Болидовское), а то будете вечно доделывать-перерабатывать
В настоящих программах УРВ море всяких галочек, флажков, настроек. Например, сотрудник не нажмёт «уйти на обед», как ему это время посчитается? А как должно быть посчитано? А может, сотрудник и не ходил на обед?
В УРВ все расчёты и графики — это мелочь, главное — это бизнес-правила, которые меняются в зависимости от территории, скуд, времени года и температуры на Марсе

И главное — зачем в этой рекламной заметке тег «kotlin», если вы ни слова не сказали о технологиях?
Всё, что связано с охраной. Рабочие места дежурных, контрольно-пропускные пункты, видеонаблюдение и прочее.
Добрый день! Это не IDE, а рабочий стол Astra Linux с названием Fly

Информация

В рейтинге
4 400-й
Откуда
Москва и Московская обл., Россия
Зарегистрирован
Активность