// build.gradle.kts — Gradle build для crypto-service. // // Артефакт: ./build/libs/crypto-service-0.1.0-all.jar (shadow jar). // Запуск: java -jar crypto-service-0.1.0-all.jar (UDS из BJ_CRYPTO_SOCKET). // // Зависимости (Maven Central, подключаются автоматически): // - grpc-java (server + protoc-gen-java) // - protobuf-java // - apache santuario (XMLDSig) // - jcp (КриптоПро JCP) — внешний jar, поставляется заказчиком // отдельно вместе с лицензией; положить в libs/. // // Соберётся, когда Maven Central доступен через прокси zetit // (пока ждём админа). plugins { id("java") id("application") id("com.google.protobuf") version "0.9.4" id("com.github.johnrengelman.shadow") version "8.1.1" } group = "ru.zetit.bridgeandjoins" version = "0.1.0" java { toolchain { languageVersion.set(JavaLanguageVersion.of(21)) } } repositories { mavenCentral() flatDir { dirs("libs") } // для jcp.jar } dependencies { val grpcVer = "1.62.2" val protobufVer = "3.25.3" implementation("io.grpc:grpc-netty-shaded:$grpcVer") implementation("io.grpc:grpc-protobuf:$grpcVer") implementation("io.grpc:grpc-stub:$grpcVer") implementation("com.google.protobuf:protobuf-java:$protobufVer") // XMLDSig (с ГОСТ-патчем поставляется в libs/ заказчиком). implementation("org.apache.santuario:xmlsec:3.0.4") // КриптоПро JCP — кладётся в services/crypto-service/libs/jcp.jar. // implementation(files("libs/jcp.jar")) compileOnly("javax.annotation:javax.annotation-api:1.3.2") implementation("ch.qos.logback:logback-classic:1.5.6") testImplementation("org.junit.jupiter:junit-jupiter:5.10.2") testImplementation("io.grpc:grpc-testing:$grpcVer") } application { mainClass.set("ru.zetit.bridgeandjoins.crypto.CryptoServer") } protobuf { protoc { artifact = "com.google.protobuf:protoc:3.25.3" } plugins { id("grpc") { artifact = "io.grpc:protoc-gen-grpc-java:1.62.2" } } generateProtoTasks { all().forEach { task -> task.plugins { id("grpc") } } } } tasks.test { useJUnitPlatform() }