// build.gradle.kts — Gradle build для crypto-service. // // Артефакт: ./build/libs/crypto-service-0.1.0-all.jar (shadow jar). // Запуск: // java -Djava.library.path=/opt/Validata/VDCSP/lib/amd64 \ // -jar crypto-service-0.1.0-all.jar // // Зависимости: // - grpc-java (server + protoc-gen-java) — Maven Central // - protobuf-java — Maven Central // - apache santuario (XMLDSig) — Maven Central // - Pki1.LocalIface.jar (Валидата JNI) — libs/ (положен из // /opt/Validata/VDCSP/lib/) // // Java toolchain — 17 (LTS), на Astra 1.7 ставится из openjdk-17-jdk. import com.google.protobuf.gradle.id 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(17)) } } repositories { mavenCentral() flatDir { dirs("libs") } // Pki1.LocalIface.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 — построение/разбор подписи. ГОСТ-алгоритмы реализуем сами // (digest + signature через VCERT_*), Santuario используем только для // канонизации и сборки XML-структуры. implementation("org.apache.santuario:xmlsec:3.0.4") // Валидата Клиент L — Pki1.LocalIface.jar. implementation(files("libs/Pki1.LocalIface.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") applicationDefaultJvmArgs = listOf( "-Djava.library.path=/opt/Validata/VDCSP/lib/amd64", ) } 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") } } } } sourceSets { main { proto { srcDir("proto") } } } tasks.withType { useJUnitPlatform() }