/ pom.xml
pom.xml
1 <?xml version="1.0" encoding="UTF-8"?> 2 <project xmlns="http://maven.apache.org/POM/4.0.0" 3 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 4 xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 5 <modelVersion>4.0.0</modelVersion> 6 7 <groupId>ai.driftkit</groupId> 8 <artifactId>driftkit-parent</artifactId> 9 <version>0.9.0</version> 10 <packaging>pom</packaging> 11 12 <name>DriftKit Parent</name> 13 <description>Parent POM for DriftKit Framework - AI ETL and Workflow Processing Framework</description> 14 <url>https://github.com/driftkit-ai/driftkit</url> 15 16 <licenses> 17 <license> 18 <name>Apache License, Version 2.0</name> 19 <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url> 20 <distribution>repo</distribution> 21 </license> 22 </licenses> 23 24 <developers> 25 <developer> 26 <name>DriftKit AI Team</name> 27 <email>alexey.doroshev@gmail.com</email> 28 <organization>DriftKit AI</organization> 29 <organizationUrl>https://driftkit.ai</organizationUrl> 30 </developer> 31 </developers> 32 33 <scm> 34 <url>https://github.com/driftkit-ai/driftkit</url> 35 <connection>scm:git:git://github.com/driftkit-ai/driftkit.git</connection> 36 <developerConnection>scm:git:ssh://github.com:driftkit-ai/driftkit.git</developerConnection> 37 </scm> 38 39 <properties> 40 <maven.compiler.source>21</maven.compiler.source> 41 <maven.compiler.target>21</maven.compiler.target> 42 <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> 43 44 <!-- Spring Boot --> 45 <spring-boot.version>3.3.1</spring-boot.version> 46 <spring.version>6.1.5</spring.version> 47 48 <!-- AI/ML Libraries --> 49 <djl.version>0.32.0</djl.version> 50 <spring-ai.version>1.0.1</spring-ai.version> 51 52 <!-- OpenAI --> 53 <openai.ai.token>${OPENAI_API_KEY}</openai.ai.token> 54 <openai.ai.baseurl>https://api.openai.com</openai.ai.baseurl> 55 <openai.ai.baseurl.v1>https://api.openai.com/v1</openai.ai.baseurl.v1> 56 57 <!-- Jackson --> 58 <jackson.version>2.17.2</jackson.version> 59 60 <!-- Apache Commons --> 61 <commons-lang3.version>3.14.0</commons-lang3.version> 62 <commons-jexl.version>2.1.1</commons-jexl.version> 63 <commons-collections4.version>4.4</commons-collections4.version> 64 <commons-io.version>2.15.1</commons-io.version> 65 66 <!-- Testing --> 67 <junit.version>4.13.2</junit.version> 68 <junit5.version>5.10.0</junit5.version> 69 <mockito.version>5.3.1</mockito.version> 70 71 <!-- Logging --> 72 <slf4j.version>2.0.8</slf4j.version> 73 74 <!-- Other --> 75 <lombok.version>1.18.34</lombok.version> 76 <feign.version>11.10</feign.version> 77 <okhttp.version>4.11.0</okhttp.version> 78 <json.version>20211205</json.version> 79 <snakeyaml.version>2.0</snakeyaml.version> 80 <jetbrains.annotations.version>24.0.1</jetbrains.annotations.version> 81 <swagger.annotations.version>2.2.15</swagger.annotations.version> 82 <spring.cloud.version>2023.0.2</spring.cloud.version> 83 84 <!-- Plugin versions --> 85 <maven-compiler-plugin.version>3.11.0</maven-compiler-plugin.version> 86 <maven-source-plugin.version>3.3.0</maven-source-plugin.version> 87 <maven-javadoc-plugin.version>3.6.3</maven-javadoc-plugin.version> 88 <maven-gpg-plugin.version>3.1.0</maven-gpg-plugin.version> 89 <central-publishing-plugin.version>0.9.0</central-publishing-plugin.version> 90 91 <!-- Audio Processing Libraries --> 92 <assemblyai.version>1.0.1</assemblyai.version> 93 <mp3spi.version>1.9.5.4</mp3spi.version> 94 <tritonus.version>0.3.7.4</tritonus.version> 95 <jave.version>3.3.1</jave.version> 96 </properties> 97 98 <modules> 99 <module>driftkit-chat-assistant-framework</module> 100 <module>driftkit-common</module> 101 <module>driftkit-clients</module> 102 <module>driftkit-embedding</module> 103 <module>driftkit-vector</module> 104 <module>driftkit-workflows</module> 105 <module>driftkit-context-engineering</module> 106 <module>driftkit-workflows-examples</module> 107 <module>driftkit-audio</module> 108 <module>driftkit-rag</module> 109 <!-- <module>driftkit-cli</module>--> 110 </modules> 111 112 <dependencyManagement> 113 <dependencies> 114 <!-- Spring Boot BOM --> 115 <dependency> 116 <groupId>org.springframework.boot</groupId> 117 <artifactId>spring-boot-dependencies</artifactId> 118 <version>${spring-boot.version}</version> 119 <type>pom</type> 120 <scope>import</scope> 121 </dependency> 122 123 <!-- Spring Cloud BOM --> 124 <dependency> 125 <groupId>org.springframework.cloud</groupId> 126 <artifactId>spring-cloud-dependencies</artifactId> 127 <version>${spring.cloud.version}</version> 128 <type>pom</type> 129 <scope>import</scope> 130 </dependency> 131 132 <!-- Spring AI BOM --> 133 <dependency> 134 <groupId>org.springframework.ai</groupId> 135 <artifactId>spring-ai-bom</artifactId> 136 <version>${spring-ai.version}</version> 137 <type>pom</type> 138 <scope>import</scope> 139 </dependency> 140 141 <!-- DriftKit Internal Dependencies --> 142 <dependency> 143 <groupId>ai.driftkit</groupId> 144 <artifactId>driftkit-common</artifactId> 145 <version>${project.version}</version> 146 </dependency> 147 <dependency> 148 <groupId>ai.driftkit</groupId> 149 <artifactId>driftkit-clients-core</artifactId> 150 <version>${project.version}</version> 151 </dependency> 152 <dependency> 153 <groupId>ai.driftkit</groupId> 154 <artifactId>driftkit-embedding-core</artifactId> 155 <version>${project.version}</version> 156 </dependency> 157 <dependency> 158 <groupId>ai.driftkit</groupId> 159 <artifactId>driftkit-vector-core</artifactId> 160 <version>${project.version}</version> 161 </dependency> 162 <dependency> 163 <groupId>ai.driftkit</groupId> 164 <artifactId>driftkit-workflows-core</artifactId> 165 <version>${project.version}</version> 166 </dependency> 167 <dependency> 168 <groupId>ai.driftkit</groupId> 169 <artifactId>driftkit-workflow-engine-core</artifactId> 170 <version>${project.version}</version> 171 </dependency> 172 <dependency> 173 <groupId>ai.driftkit</groupId> 174 <artifactId>driftkit-workflow-engine-spring-boot-starter</artifactId> 175 <version>${project.version}</version> 176 </dependency> 177 <dependency> 178 <groupId>ai.driftkit</groupId> 179 <artifactId>driftkit-context-engineering-core</artifactId> 180 <version>${project.version}</version> 181 </dependency> 182 <dependency> 183 <groupId>ai.driftkit</groupId> 184 <artifactId>driftkit-workflows-examples-core</artifactId> 185 <version>${project.version}</version> 186 </dependency> 187 <dependency> 188 <groupId>ai.driftkit</groupId> 189 <artifactId>driftkit-clients-openai</artifactId> 190 <version>${project.version}</version> 191 </dependency> 192 <dependency> 193 <groupId>ai.driftkit</groupId> 194 <artifactId>driftkit-clients-deepseek</artifactId> 195 <version>${project.version}</version> 196 </dependency> 197 <dependency> 198 <groupId>ai.driftkit</groupId> 199 <artifactId>driftkit-audio-core</artifactId> 200 <version>${project.version}</version> 201 </dependency> 202 203 <!-- Lombok --> 204 <dependency> 205 <groupId>org.projectlombok</groupId> 206 <artifactId>lombok</artifactId> 207 <version>${lombok.version}</version> 208 <scope>provided</scope> 209 </dependency> 210 211 <!-- Jackson --> 212 <dependency> 213 <groupId>com.fasterxml.jackson.core</groupId> 214 <artifactId>jackson-databind</artifactId> 215 <version>${jackson.version}</version> 216 </dependency> 217 <dependency> 218 <groupId>com.fasterxml.jackson.datatype</groupId> 219 <artifactId>jackson-datatype-jsr310</artifactId> 220 <version>${jackson.version}</version> 221 </dependency> 222 223 <!-- Apache Commons --> 224 <dependency> 225 <groupId>org.apache.commons</groupId> 226 <artifactId>commons-lang3</artifactId> 227 <version>${commons-lang3.version}</version> 228 </dependency> 229 <dependency> 230 <groupId>org.apache.commons</groupId> 231 <artifactId>commons-jexl</artifactId> 232 <version>${commons-jexl.version}</version> 233 </dependency> 234 <dependency> 235 <groupId>org.apache.commons</groupId> 236 <artifactId>commons-collections4</artifactId> 237 <version>${commons-collections4.version}</version> 238 </dependency> 239 <dependency> 240 <groupId>commons-io</groupId> 241 <artifactId>commons-io</artifactId> 242 <version>${commons-io.version}</version> 243 </dependency> 244 245 <!-- SLF4J --> 246 <dependency> 247 <groupId>org.slf4j</groupId> 248 <artifactId>slf4j-api</artifactId> 249 <version>${slf4j.version}</version> 250 </dependency> 251 252 <!-- JetBrains Annotations --> 253 <dependency> 254 <groupId>org.jetbrains</groupId> 255 <artifactId>annotations</artifactId> 256 <version>${jetbrains.annotations.version}</version> 257 </dependency> 258 259 <!-- Swagger Annotations --> 260 <dependency> 261 <groupId>io.swagger.core.v3</groupId> 262 <artifactId>swagger-annotations</artifactId> 263 <version>${swagger.annotations.version}</version> 264 </dependency> 265 266 <!-- Feign --> 267 <dependency> 268 <groupId>io.github.openfeign</groupId> 269 <artifactId>feign-core</artifactId> 270 <version>${feign.version}</version> 271 </dependency> 272 <dependency> 273 <groupId>io.github.openfeign</groupId> 274 <artifactId>feign-jackson</artifactId> 275 <version>${feign.version}</version> 276 </dependency> 277 <dependency> 278 <groupId>io.github.openfeign</groupId> 279 <artifactId>feign-okhttp</artifactId> 280 <version>${feign.version}</version> 281 </dependency> 282 <dependency> 283 <groupId>io.github.openfeign</groupId> 284 <artifactId>feign-slf4j</artifactId> 285 <version>${feign.version}</version> 286 </dependency> 287 288 <!-- OkHttp --> 289 <dependency> 290 <groupId>com.squareup.okhttp3</groupId> 291 <artifactId>okhttp</artifactId> 292 <version>${okhttp.version}</version> 293 </dependency> 294 295 <!-- JSON --> 296 <dependency> 297 <groupId>org.json</groupId> 298 <artifactId>json</artifactId> 299 <version>${json.version}</version> 300 </dependency> 301 302 <!-- YAML --> 303 <dependency> 304 <groupId>org.yaml</groupId> 305 <artifactId>snakeyaml</artifactId> 306 <version>${snakeyaml.version}</version> 307 </dependency> 308 309 <!-- ONNX Runtime for local embeddings --> 310 <dependency> 311 <groupId>com.microsoft.onnxruntime</groupId> 312 <artifactId>onnxruntime</artifactId> 313 <version>1.16.3</version> 314 </dependency> 315 316 <!-- DJL --> 317 <dependency> 318 <groupId>ai.djl</groupId> 319 <artifactId>api</artifactId> 320 <version>${djl.version}</version> 321 </dependency> 322 <dependency> 323 <groupId>ai.djl.huggingface</groupId> 324 <artifactId>tokenizers</artifactId> 325 <version>${djl.version}</version> 326 </dependency> 327 328 <!-- Audio Processing Libraries --> 329 <dependency> 330 <groupId>com.assemblyai</groupId> 331 <artifactId>assemblyai-java</artifactId> 332 <version>${assemblyai.version}</version> 333 </dependency> 334 <dependency> 335 <groupId>com.googlecode.soundlibs</groupId> 336 <artifactId>mp3spi</artifactId> 337 <version>${mp3spi.version}</version> 338 </dependency> 339 <dependency> 340 <groupId>com.googlecode.soundlibs</groupId> 341 <artifactId>tritonus-share</artifactId> 342 <version>${tritonus.version}</version> 343 </dependency> 344 <dependency> 345 <groupId>ws.schild</groupId> 346 <artifactId>jave-core</artifactId> 347 <version>${jave.version}</version> 348 </dependency> 349 <dependency> 350 <groupId>ws.schild</groupId> 351 <artifactId>jave-nativebin-linux64</artifactId> 352 <version>${jave.version}</version> 353 </dependency> 354 <dependency> 355 <groupId>ws.schild</groupId> 356 <artifactId>jave-nativebin-win64</artifactId> 357 <version>${jave.version}</version> 358 </dependency> 359 <dependency> 360 <groupId>ws.schild</groupId> 361 <artifactId>jave-nativebin-osx64</artifactId> 362 <version>${jave.version}</version> 363 </dependency> 364 365 <!-- Testing --> 366 <dependency> 367 <groupId>junit</groupId> 368 <artifactId>junit</artifactId> 369 <version>${junit.version}</version> 370 <scope>test</scope> 371 </dependency> 372 <dependency> 373 <groupId>org.junit.jupiter</groupId> 374 <artifactId>junit-jupiter</artifactId> 375 <version>${junit5.version}</version> 376 <scope>test</scope> 377 </dependency> 378 <dependency> 379 <groupId>org.junit.jupiter</groupId> 380 <artifactId>junit-jupiter-api</artifactId> 381 <version>${junit5.version}</version> 382 <scope>test</scope> 383 </dependency> 384 <dependency> 385 <groupId>org.junit.jupiter</groupId> 386 <artifactId>junit-jupiter-engine</artifactId> 387 <version>${junit5.version}</version> 388 <scope>test</scope> 389 </dependency> 390 <dependency> 391 <groupId>org.mockito</groupId> 392 <artifactId>mockito-core</artifactId> 393 <version>${mockito.version}</version> 394 <scope>test</scope> 395 </dependency> 396 </dependencies> 397 </dependencyManagement> 398 399 <build> 400 <pluginManagement> 401 <plugins> 402 <plugin> 403 <groupId>org.apache.maven.plugins</groupId> 404 <artifactId>maven-compiler-plugin</artifactId> 405 <version>${maven-compiler-plugin.version}</version> 406 <configuration> 407 <source>21</source> 408 <target>21</target> 409 <encoding>UTF-8</encoding> 410 <compilerArgs> 411 <arg>-parameters</arg> 412 </compilerArgs> 413 <annotationProcessorPaths> 414 <path> 415 <groupId>org.projectlombok</groupId> 416 <artifactId>lombok</artifactId> 417 <version>${lombok.version}</version> 418 </path> 419 </annotationProcessorPaths> 420 </configuration> 421 </plugin> 422 423 <plugin> 424 <groupId>org.springframework.boot</groupId> 425 <artifactId>spring-boot-maven-plugin</artifactId> 426 <version>${spring-boot.version}</version> 427 </plugin> 428 429 <plugin> 430 <groupId>org.apache.maven.plugins</groupId> 431 <artifactId>maven-surefire-plugin</artifactId> 432 <version>3.0.0</version> 433 </plugin> 434 435 <plugin> 436 <groupId>org.apache.maven.plugins</groupId> 437 <artifactId>maven-source-plugin</artifactId> 438 <version>${maven-source-plugin.version}</version> 439 <executions> 440 <execution> 441 <id>attach-sources</id> 442 <goals> 443 <goal>jar-no-fork</goal> 444 </goals> 445 </execution> 446 </executions> 447 </plugin> 448 449 <plugin> 450 <groupId>org.apache.maven.plugins</groupId> 451 <artifactId>maven-javadoc-plugin</artifactId> 452 <version>${maven-javadoc-plugin.version}</version> 453 <configuration> 454 <doclint>none</doclint> 455 <failOnError>false</failOnError> 456 <failOnWarnings>false</failOnWarnings> 457 </configuration> 458 <executions> 459 <execution> 460 <id>attach-javadocs</id> 461 <goals> 462 <goal>jar</goal> 463 </goals> 464 </execution> 465 </executions> 466 </plugin> 467 468 <plugin> 469 <groupId>org.apache.maven.plugins</groupId> 470 <artifactId>maven-gpg-plugin</artifactId> 471 <version>${maven-gpg-plugin.version}</version> 472 <executions> 473 <execution> 474 <id>sign-artifacts</id> 475 <phase>verify</phase> 476 <goals> 477 <goal>sign</goal> 478 </goals> 479 </execution> 480 </executions> 481 </plugin> 482 483 <plugin> 484 <groupId>org.sonatype.central</groupId> 485 <artifactId>central-publishing-maven-plugin</artifactId> 486 <version>${central-publishing-plugin.version}</version> 487 <extensions>true</extensions> 488 <configuration> 489 <publishingServerId>central</publishingServerId> 490 </configuration> 491 </plugin> 492 </plugins> 493 </pluginManagement> 494 </build> 495 496 <distributionManagement> 497 <snapshotRepository> 498 <id>central</id> 499 <url>https://central.sonatype.com/</url> 500 </snapshotRepository> 501 <repository> 502 <id>central</id> 503 <url>https://central.sonatype.com/</url> 504 </repository> 505 </distributionManagement> 506 507 <profiles> 508 <profile> 509 <id>release</id> 510 <build> 511 <plugins> 512 <plugin> 513 <groupId>org.apache.maven.plugins</groupId> 514 <artifactId>maven-source-plugin</artifactId> 515 </plugin> 516 <plugin> 517 <groupId>org.apache.maven.plugins</groupId> 518 <artifactId>maven-javadoc-plugin</artifactId> 519 </plugin> 520 <plugin> 521 <groupId>org.apache.maven.plugins</groupId> 522 <artifactId>maven-gpg-plugin</artifactId> 523 </plugin> 524 <plugin> 525 <groupId>org.sonatype.central</groupId> 526 <artifactId>central-publishing-maven-plugin</artifactId> 527 </plugin> 528 </plugins> 529 </build> 530 </profile> 531 </profiles> 532 533 <repositories> 534 <repository> 535 <id>spring-milestones</id> 536 <name>Spring Milestones</name> 537 <url>https://repo.spring.io/milestone</url> 538 <snapshots> 539 <enabled>false</enabled> 540 </snapshots> 541 </repository> 542 <repository> 543 <id>spring-snapshots</id> 544 <name>Spring Snapshots</name> 545 <url>https://repo.spring.io/snapshot</url> 546 <releases> 547 <enabled>false</enabled> 548 </releases> 549 </repository> 550 </repositories> 551 </project>