CatgirlIntelligenceAgency/code/tools/screenshot-capture-tool/build.gradle
Viktor Lofgren 66c1281301 (zk-registry) epic jak shaving WIP
Cleaning out a lot of old junk from the code, and one thing lead to another...

* Build is improved, now constructing docker images with 'jib'.  Clean build went from 3 minutes to 50 seconds.
* The ProcessService's spawning is smarter.  Will now just spawn a java process instead of relying on the application plugin's generated outputs.
* Project is migrated to GraalVM
* gRPC clients are re-written with a neat fluent/functional style. e.g.
```channelPool.call(grpcStub::method)
              .async(executor) // <-- optional
              .run(argument);
```
This change is primarily to allow handling ManagedChannel errors, but it turned out to be a pretty clean API overall.
* For now the project is all in on zookeeper
* Service discovery is now based on APIs and not services.  Theoretically means we could ship the same code either a monolith or a service mesh.
* To this end, began modularizing a few of the APIs so that they aren't strongly "living" in a service.  WIP!

Missing is documentation and testing, and some more breaking apart of code.
2024-02-22 14:01:23 +01:00

58 lines
1.4 KiB
Groovy

plugins {
id 'java'
id 'application'
id 'jvm-test-suite'
id 'com.google.cloud.tools.jib' version '3.4.0'
}
java {
toolchain {
languageVersion.set(JavaLanguageVersion.of(21))
}
}
application {
mainClass = 'nu.marginalia.screenshot.ScreenshotCaptureToolMain'
applicationName = 'screenshot-capture-tool'
}
jib {
from {
image = image = rootProject.ext.dockerImageBase
}
to {
image = 'marginalia/'+project.name
tags = ['latest']
}
container {
mainClass = application.mainClass
jvmFlags = ['-Dservice.bind-address=0.0.0.0', '-Dservice.useDockerHostname=TRUE', '-Dsystem.homePath=/wmsa']
volumes = ['/wmsa/conf', '/wmsa/model', '/wmsa/data', '/var/log/wmsa']
}
}
tasks.distZip.enabled = false
dependencies {
implementation project(':code:common:model')
implementation project(':code:features-search:screenshots')
implementation project(':code:common:service')
implementation libs.bundles.slf4j
implementation libs.bundles.selenium
implementation libs.bundles.mariadb
implementation libs.notnull
implementation libs.commons.compress
implementation libs.commons.io
implementation libs.guice
implementation libs.gson
testImplementation libs.bundles.slf4j.test
testImplementation libs.bundles.junit
testImplementation libs.mockito
}