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      <parent>
  8          <groupId>ai.driftkit</groupId>
  9          <artifactId>driftkit-context-engineering</artifactId>
 10          <version>0.9.0</version>
 11          <relativePath>../pom.xml</relativePath>
 12      </parent>
 13  
 14      <artifactId>driftkit-context-engineering-spring-boot-starter</artifactId>
 15  
 16      <name>DriftKit Context Engineering Spring Boot Starter</name>
 17      <description>Spring Boot auto-configuration for DriftKit Context Engineering with frontend</description>
 18  
 19      <properties>
 20          <frontend.directory>src/main/frontend</frontend.directory>
 21          <node.version>v18.16.0</node.version>
 22          <npm.version>9.5.1</npm.version>
 23      </properties>
 24  
 25      <dependencies>
 26          <!-- DriftKit Dependencies -->
 27          <dependency>
 28              <groupId>ai.driftkit</groupId>
 29              <artifactId>driftkit-context-engineering-core</artifactId>
 30          </dependency>
 31          <dependency>
 32              <groupId>ai.driftkit</groupId>
 33              <artifactId>driftkit-context-engineering-services</artifactId>
 34              <version>${project.version}</version>
 35          </dependency>
 36          <dependency>
 37              <groupId>ai.driftkit</groupId>
 38              <artifactId>driftkit-workflow-engine-core</artifactId>
 39          </dependency>
 40  
 41          <!-- Spring Boot -->
 42          <dependency>
 43              <groupId>org.springframework.boot</groupId>
 44              <artifactId>spring-boot-starter-web</artifactId>
 45          </dependency>
 46          <dependency>
 47              <groupId>org.springframework.boot</groupId>
 48              <artifactId>spring-boot-configuration-processor</artifactId>
 49              <optional>true</optional>
 50          </dependency>
 51          <dependency>
 52              <groupId>org.springframework.boot</groupId>
 53              <artifactId>spring-boot-autoconfigure</artifactId>
 54          </dependency>
 55  
 56          <!-- Lombok -->
 57          <dependency>
 58              <groupId>org.projectlombok</groupId>
 59              <artifactId>lombok</artifactId>
 60          </dependency>
 61          
 62          <!-- Validation -->
 63          <dependency>
 64              <groupId>org.springframework.boot</groupId>
 65              <artifactId>spring-boot-starter-validation</artifactId>
 66          </dependency>
 67  
 68          <!-- Testing -->
 69          <dependency>
 70              <groupId>org.springframework.boot</groupId>
 71              <artifactId>spring-boot-starter-test</artifactId>
 72              <scope>test</scope>
 73          </dependency>
 74          <dependency>
 75              <groupId>ai.driftkit</groupId>
 76              <artifactId>driftkit-clients-deepseek</artifactId>
 77              <scope>test</scope>
 78          </dependency>
 79          <dependency>
 80              <groupId>de.flapdoodle.embed</groupId>
 81              <artifactId>de.flapdoodle.embed.mongo.spring3x</artifactId>
 82              <version>4.11.0</version>
 83              <scope>test</scope>
 84          </dependency>
 85          <dependency>
 86              <groupId>org.springframework.data</groupId>
 87              <artifactId>spring-data-mongodb</artifactId>
 88          </dependency>
 89          <dependency>
 90              <groupId>ai.driftkit</groupId>
 91              <artifactId>driftkit-workflows-spring-boot-starter</artifactId>
 92              <version>${project.version}</version>
 93              <scope>compile</scope>
 94          </dependency>
 95  
 96          <!-- Clients module for EtlConfig autoconfiguration -->
 97          <dependency>
 98              <groupId>ai.driftkit</groupId>
 99              <artifactId>driftkit-clients-spring-boot-starter</artifactId>
100              <version>${project.version}</version>
101          </dependency>
102  
103          <!-- Vector module for ParserController -->
104          <dependency>
105              <groupId>ai.driftkit</groupId>
106              <artifactId>driftkit-vector-spring-boot-starter</artifactId>
107              <version>${project.version}</version>
108          </dependency>
109          
110          <!-- Swagger/OpenAPI for annotations -->
111          <dependency>
112              <groupId>org.springdoc</groupId>
113              <artifactId>springdoc-openapi-starter-webmvc-ui</artifactId>
114              <version>2.2.0</version>
115          </dependency>
116          
117          <!-- JSONPath for evaluation configs -->
118          <dependency>
119              <groupId>com.jayway.jsonpath</groupId>
120              <artifactId>json-path</artifactId>
121          </dependency>
122          
123          <!-- Apache Commons Lang for StringUtils -->
124          <dependency>
125              <groupId>org.apache.commons</groupId>
126              <artifactId>commons-lang3</artifactId>
127          </dependency>
128          
129          <!-- JSON Schema Validator -->
130          <dependency>
131              <groupId>com.networknt</groupId>
132              <artifactId>json-schema-validator</artifactId>
133              <version>1.0.87</version>
134          </dependency>
135      </dependencies>
136  
137      <build>
138          <plugins>
139              <!-- Frontend build plugin -->
140              <plugin>
141                  <groupId>com.github.eirslett</groupId>
142                  <artifactId>frontend-maven-plugin</artifactId>
143                  <version>1.12.1</version>
144                  <configuration>
145                      <workingDirectory>${frontend.directory}</workingDirectory>
146                  </configuration>
147                  <executions>
148                      <execution>
149                          <id>install node and npm</id>
150                          <goals>
151                              <goal>install-node-and-npm</goal>
152                          </goals>
153                          <configuration>
154                              <nodeVersion>${node.version}</nodeVersion>
155                              <npmVersion>${npm.version}</npmVersion>
156                          </configuration>
157                      </execution>
158  
159                      <!-- npm dependencies -->
160                      <execution>
161                          <id>npm install</id>
162                          <goals>
163                              <goal>npm</goal>
164                          </goals>
165                          <phase>generate-resources</phase>
166                          <configuration>
167                              <arguments>install</arguments>
168                          </configuration>
169                      </execution>
170  
171                      <!-- Build Vue app -->
172                      <execution>
173                          <id>npm run build</id>
174                          <goals>
175                              <goal>npm</goal>
176                          </goals>
177                          <phase>compile</phase>
178                          <configuration>
179                              <arguments>run build</arguments>
180                          </configuration>
181                      </execution>
182                  </executions>
183              </plugin>
184  
185              <!-- Copy frontend build to resources -->
186              <plugin>
187                  <artifactId>maven-resources-plugin</artifactId>
188                  <version>3.3.0</version>
189                  <configuration>
190                      <includeEmptyDirs>true</includeEmptyDirs>
191                  </configuration>
192                  <executions>
193                      <execution>
194                          <id>copy frontend build</id>
195                          <phase>prepare-package</phase>
196                          <goals>
197                              <goal>copy-resources</goal>
198                          </goals>
199                          <configuration>
200                              <outputDirectory>${project.build.outputDirectory}/static/prompt-engineering</outputDirectory>
201                              <resources>
202                                  <resource>
203                                      <directory>${frontend.directory}/dist</directory>
204                                      <filtering>false</filtering>
205                                  </resource>
206                              </resources>
207                          </configuration>
208                      </execution>
209                  </executions>
210              </plugin>
211          </plugins>
212      </build>
213  </project>