/ 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>