pom.xml 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238
  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" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  4. <parent>
  5. <artifactId>kafka-ui</artifactId>
  6. <groupId>com.provectus</groupId>
  7. <version>0.0.1-SNAPSHOT</version>
  8. </parent>
  9. <modelVersion>4.0.0</modelVersion>
  10. <artifactId>kafka-ui-contract</artifactId>
  11. <profiles>
  12. <profile>
  13. <id>generate-spring-webflux-api</id>
  14. <activation>
  15. <activeByDefault>true</activeByDefault>
  16. </activation>
  17. <dependencies>
  18. <dependency>
  19. <groupId>org.springframework.boot</groupId>
  20. <artifactId>spring-boot-starter-webflux</artifactId>
  21. </dependency>
  22. <dependency>
  23. <groupId>org.springframework.boot</groupId>
  24. <artifactId>spring-boot-starter-validation</artifactId>
  25. </dependency>
  26. <dependency>
  27. <groupId>io.swagger.core.v3</groupId>
  28. <artifactId>swagger-integration-jakarta</artifactId>
  29. <version>2.2.8</version>
  30. </dependency>
  31. <dependency>
  32. <groupId>org.openapitools</groupId>
  33. <artifactId>jackson-databind-nullable</artifactId>
  34. <version>0.2.4</version>
  35. </dependency>
  36. <dependency>
  37. <groupId>jakarta.annotation</groupId>
  38. <artifactId>jakarta.annotation-api</artifactId>
  39. <version>2.1.1</version>
  40. </dependency>
  41. <dependency>
  42. <groupId>javax.annotation</groupId>
  43. <artifactId>javax.annotation-api</artifactId>
  44. <version>1.3.2</version>
  45. </dependency>
  46. </dependencies>
  47. <build>
  48. <plugins>
  49. <plugin>
  50. <groupId>org.openapitools</groupId>
  51. <artifactId>openapi-generator-maven-plugin</artifactId>
  52. <version>${openapi-generator-maven-plugin.version}</version>
  53. <executions>
  54. <execution>
  55. <id>generate-kafka-ui-client</id>
  56. <goals>
  57. <goal>generate</goal>
  58. </goals>
  59. <configuration>
  60. <inputSpec>${project.basedir}/src/main/resources/swagger/kafka-ui-api.yaml
  61. </inputSpec>
  62. <output>${project.build.directory}/generated-sources/kafka-ui-client</output>
  63. <generatorName>java</generatorName>
  64. <generateApiTests>false</generateApiTests>
  65. <generateModelTests>false</generateModelTests>
  66. <configOptions>
  67. <modelPackage>com.provectus.kafka.ui.api.model</modelPackage>
  68. <apiPackage>com.provectus.kafka.ui.api.api</apiPackage>
  69. <sourceFolder>kafka-ui-client</sourceFolder>
  70. <asyncNative>true</asyncNative>
  71. <library>webclient</library>
  72. <useBeanValidation>true</useBeanValidation>
  73. <dateLibrary>java8</dateLibrary>
  74. <useJakartaEe>true</useJakartaEe>
  75. </configOptions>
  76. </configuration>
  77. </execution>
  78. <execution>
  79. <id>generate-backend-api</id>
  80. <goals>
  81. <goal>generate</goal>
  82. </goals>
  83. <configuration>
  84. <inputSpec>${project.basedir}/src/main/resources/swagger/kafka-ui-api.yaml</inputSpec>
  85. <output>${project.build.directory}/generated-sources/api</output>
  86. <generatorName>spring</generatorName>
  87. <modelNameSuffix>DTO</modelNameSuffix>
  88. <configOptions>
  89. <modelPackage>com.provectus.kafka.ui.model</modelPackage>
  90. <apiPackage>com.provectus.kafka.ui.api</apiPackage>
  91. <sourceFolder>kafka-ui-contract</sourceFolder>
  92. <reactive>true</reactive>
  93. <interfaceOnly>true</interfaceOnly>
  94. <skipDefaultInterface>true</skipDefaultInterface>
  95. <useBeanValidation>true</useBeanValidation>
  96. <useTags>true</useTags>
  97. <useSpringBoot3>true</useSpringBoot3>
  98. <dateLibrary>java8</dateLibrary>
  99. </configOptions>
  100. </configuration>
  101. </execution>
  102. <execution>
  103. <id>generate-connect-client</id>
  104. <goals>
  105. <goal>generate</goal>
  106. </goals>
  107. <configuration>
  108. <inputSpec>${project.basedir}/src/main/resources/swagger/kafka-connect-api.yaml
  109. </inputSpec>
  110. <output>${project.build.directory}/generated-sources/kafka-connect-client</output>
  111. <generatorName>java</generatorName>
  112. <generateApiTests>false</generateApiTests>
  113. <generateModelTests>false</generateModelTests>
  114. <configOptions>
  115. <modelPackage>com.provectus.kafka.ui.connect.model</modelPackage>
  116. <apiPackage>com.provectus.kafka.ui.connect.api</apiPackage>
  117. <sourceFolder>kafka-connect-client</sourceFolder>
  118. <asyncNative>true</asyncNative>
  119. <library>webclient</library>
  120. <useJakartaEe>true</useJakartaEe>
  121. <useBeanValidation>true</useBeanValidation>
  122. <dateLibrary>java8</dateLibrary>
  123. </configOptions>
  124. </configuration>
  125. </execution>
  126. <execution>
  127. <id>generate-sr-client</id>
  128. <goals>
  129. <goal>generate</goal>
  130. </goals>
  131. <configuration>
  132. <inputSpec>${project.basedir}/src/main/resources/swagger/kafka-sr-api.yaml
  133. </inputSpec>
  134. <output>${project.build.directory}/generated-sources/kafka-sr-client</output>
  135. <generatorName>java</generatorName>
  136. <generateApiTests>false</generateApiTests>
  137. <generateModelTests>false</generateModelTests>
  138. <configOptions>
  139. <modelPackage>com.provectus.kafka.ui.sr.model</modelPackage>
  140. <apiPackage>com.provectus.kafka.ui.sr.api</apiPackage>
  141. <sourceFolder>kafka-sr-client</sourceFolder>
  142. <asyncNative>true</asyncNative>
  143. <library>webclient</library>
  144. <useJakartaEe>true</useJakartaEe>
  145. <useBeanValidation>true</useBeanValidation>
  146. <dateLibrary>java8</dateLibrary>
  147. </configOptions>
  148. </configuration>
  149. </execution>
  150. </executions>
  151. </plugin>
  152. <plugin>
  153. <groupId>com.github.eirslett</groupId>
  154. <artifactId>frontend-maven-plugin</artifactId>
  155. <version>${frontend-maven-plugin.version}</version>
  156. <configuration>
  157. <workingDirectory>../kafka-ui-react-app</workingDirectory>
  158. <environmentVariables>
  159. <VITE_TAG>${project.version}</VITE_TAG>
  160. </environmentVariables>
  161. </configuration>
  162. <executions>
  163. <execution>
  164. <id>install node and pnpm</id>
  165. <goals>
  166. <goal>install-node-and-pnpm</goal>
  167. </goals>
  168. <configuration>
  169. <nodeVersion>${node.version}</nodeVersion>
  170. <pnpmVersion>${pnpm.version}</pnpmVersion>
  171. </configuration>
  172. </execution>
  173. <execution>
  174. <id>pnpm install</id>
  175. <goals>
  176. <goal>pnpm</goal>
  177. </goals>
  178. <configuration>
  179. <arguments>install</arguments>
  180. </configuration>
  181. </execution>
  182. <execution>
  183. <id>pnpm gen:sources</id>
  184. <goals>
  185. <goal>pnpm</goal>
  186. </goals>
  187. <configuration>
  188. <arguments>gen:sources</arguments>
  189. </configuration>
  190. </execution>
  191. </executions>
  192. </plugin>
  193. <plugin>
  194. <groupId>org.apache.maven.plugins</groupId>
  195. <artifactId>maven-clean-plugin</artifactId>
  196. <configuration>
  197. <filesets>
  198. <fileset>
  199. <directory>${basedir}/${frontend-generated-sources-directory}</directory>
  200. </fileset>
  201. </filesets>
  202. </configuration>
  203. </plugin>
  204. <plugin>
  205. <groupId>org.apache.maven.plugins</groupId>
  206. <artifactId>maven-resources-plugin</artifactId>
  207. <executions>
  208. <execution>
  209. <id>copy-resource-one</id>
  210. <phase>generate-resources</phase>
  211. <goals>
  212. <goal>copy-resources</goal>
  213. </goals>
  214. <configuration>
  215. <outputDirectory>${basedir}/${frontend-generated-sources-directory}</outputDirectory>
  216. <resources>
  217. <resource>
  218. <directory>${project.build.directory}/generated-sources/frontend/</directory>
  219. <includes>
  220. <include>**/*.ts</include>
  221. </includes>
  222. </resource>
  223. </resources>
  224. </configuration>
  225. </execution>
  226. </executions>
  227. </plugin>
  228. </plugins>
  229. </build>
  230. </profile>
  231. </profiles>
  232. </project>