-
Notifications
You must be signed in to change notification settings - Fork 0
/
pom.xml
1051 lines (1020 loc) · 45.5 KB
/
pom.xml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://maven.apache.org/POM/4.0.0"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>3.3.3</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>wo1261931780</groupId>
<artifactId>testSpringProject</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>testSpringProject</name>
<description>junw project</description>
<properties>
<java.version>17</java.version>
<!--<spring-native.version>0.12.1</spring-native.version>-->
<!--maven的打包配置-->
<maven.compiler.source>17</maven.compiler.source>
<maven.compiler.target>17</maven.compiler.target>
<!--编码格式-->
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
</properties>
<dependencies>
<!--=============================================================================================-->
<!--下面两个配置基本地启动,后面的按需修改-->
<!--=============================================================================================-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
<version>3.3.5</version>
</dependency>
<!--spring网络WEB-->
<!--使用SpringMVC构建Web,包括RESTful,应用程序。使用ApacheTomcat作为默认的嵌入式容器。-->
<!--里面已经包含了springMVC的内容-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<version>3.3.5</version>
<!--<scope>test</scope>-->
<!--上面的scope表示作用范围-->
<!--在没有说明的情况下,scope默认就是compile-->
<!--如果我把mysql这些数据库驱动jar包设置为runtime-->
<!--那么我在日常使用的过程中,是无法访问这些类的-->
</dependency>
<!--=============================================================================================-->
<!--spring相关-->
<!--=============================================================================================-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
<version>3.3.3</version>
</dependency>
<!--SpringAspects将Spring与AspectJ整合在一起。-->
<!--AOP切面编程的依赖-->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-aspects</artifactId>
<version>6.1.12</version>
</dependency>
<!--一开始是在springboot context里面-->
<!--现在是在cache里面-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-cache</artifactId>
<version>3.3.5</version>
</dependency>
<!--SpringBoot DevTools 开发人员工具-->
<!--提供快速的应用重启、LiveReload和配置,以增强开发体验。-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<version>3.3.4</version>
<scope>runtime</scope>
<optional>true</optional>
</dependency>
<!--Spring配置处理器开发者工具-->
<!--为开发人员生成元数据,以便在使用自定义配置键(ex.application.properties/.yml文件)时提供上下文帮助和"代码完成"。-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-configuration-processor</artifactId>
<version>3.3.4</version>
<optional>true</optional>
<!--添加以后,可以避免自动装配报错-->
</dependency>
<!--使用Spring
Boot的Actuator的入门课程,它提供了生产准备的功能,帮助你监控和管理你的应用程序。-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
<version>3.3.3</version>
</dependency>
<!--=============================================================================================-->
<!--DEVELOPER_TOOLS-->
<!--=============================================================================================-->
<!--Lombok开发者工具-->
<!--帮助减少模板代码的Java注释库。-->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.34</version>
<optional>true</optional>
<scope>provided</scope>
<!--因为只是源代码中提供了对应的功能-->
<!--所以其实不需要参与源代码的打包-->
</dependency>
<!--提供便捷的,model到Mapper转换-->
<dependency>
<groupId>org.modelmapper</groupId>
<artifactId>modelmapper</artifactId>
<version>3.2.1</version>
</dependency>
<!--通过 AutoConfiguration 机制使得应用可以在启动时根据引入的类和配置,自动加载配置类(Configuration),从而在这些类中初始化所需的 Spring Bean。-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-autoconfigure</artifactId>
<version>3.3.4</version>
</dependency>
<!-- hutool -->
<!--字符串不为空的判断工具-->
<!--Hutool是一个小而全的Java工具类库,通过静态方法封装,降低相关API的学习成本,提高工作效率,使Java拥有函数式语言般的优雅。-->
<!--Hutool是项目中“util”包友好的替代,它节省了开发人员对项目中公用类和公用工具方法的封装时间,使开发专注于业务,同时可以最大限度的避免封装不完善带来的bug。-->
<!--【以前】打开搜索引擎-> 搜“Java MD5加密” -> 打开某篇博客-> 复制粘贴 -> 改改好用-->
<!--【现在】引入Hutool-> SecureUtil.md5()-->
<dependency>
<groupId>cn.hutool</groupId>
<artifactId>hutool-all</artifactId>
<version>5.8.32</version>
</dependency>
<!--阿里巴巴的Fastjson是一个用Java编写的JSON处理器(JSON解析器+JSON生成器)。-->
<!--多个依赖和dubbo冲突-->
<dependency>
<groupId>com.alibaba.fastjson2</groupId>
<artifactId>fastjson2</artifactId>
<version>2.0.53.android8</version>
</dependency>
<!--标准
Java 库无法为核心类的操作提供足够的方法。Apache Commons Lang 提供了这些额外的方法。-->
<!--ApacheCommons Lang 为 java.lang API 提供了大量辅助实用程序,尤其是字符串操作方法、基本数值方法、对象反射、并发、创建和序列化以及系统属性。-->
<!--此外,它还包含对java.util.Date 的基本增强,以及一系列专用于帮助构建方法的实用程序,如 hashCode、toString 和 equals。-->
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
<version>3.17.0</version>
</dependency>
<!--Guava是一种基于开源的Java库,Google
Guava源于2007年的"Google Collections Library"。-->
<!--这个库是为了方便编码,并减少编码错误。这个库用于提供集合,缓存,支持原语句,并发性,常见注解,字符串处理,I/O和验证的实用方法。-->
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
<version>32.1.3-jre</version>
</dependency>
<!--=============================================================================================-->
<!--WEB-->
<!--=============================================================================================-->
<!--SpringWebServices WEB-->
<!--为契约优先的SOAP开发提供了便利。允许使用许多操作XML有效载荷的方法之一来创建灵活的Web服务。-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web-services</artifactId>
<version>3.3.5</version>
</dependency>
<!--相比来说,jetty更加轻量,而且拓展性更强-->
<!--tomcat是apache的,而jetty是eclipse的-->
<!--以后可能jetty是开发的主流-->
<!--<dependency>-->
<!-- <groupId>org.springframework.boot</groupId>-->
<!-- <artifactId>spring-boot-starter-jetty</artifactId>-->
<!--因为starter-web中是没有jetty存在的,所以这里暂时不修改启动服务器-->
<!--</dependency>-->
<!--JavaServlet是Java企业平台中的基础网络规范。开发人员可以使用ServletAPI构建Web应用程序,与请求/响应工作流进行交互。-->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>4.0.1</version>
<scope>provided</scope>
<!--必须把scope变成provide,否则会和tomcat发生冲突-->
</dependency>
<!--spring的反应性网络WEB-->
<!--使用SpringWebFlux和Netty构建反应式Web应用。-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-webflux</artifactId>
<version>3.3.5</version>
</dependency>
<!--SpringSessionWEB-->
<!--为管理用户会话信息提供API和实现。-->
<!--没有配置,项目报错,启动失败-->
<!--<dependency>-->
<!-- <groupId>org.springframework.session</groupId>-->
<!-- <artifactId>spring-session-jdbc</artifactId>-->
<!--</dependency>-->
<!--Jersey是一个RESTFUL请求服务JAVA框架,与常规的JAVA编程使用的struts框架类似,它主要用于处理业务逻辑层。-->
<!--与springmvc的区别:-->
<!--1.jersey同样提供DI,是由glassfish hk2实现,也就是说,如果想单独使用jersey一套,需要另外学习Bean容器;-->
<!--2.MVC出发点即是WEB,但jersey出发点确实RESTFull,体现点在与接口的设计方面,如MVC返回复杂结构需要使用ModelAndView,而jersey仅仅需要返回一个流或者文件句柄;-->
<!--3.jersey提供一种子资源的概念,这也是RESTFull中提倡所有url都是资源;-->
<!--4.jersey直接提供application.wadl资源url说明;-->
<!--5.MVC提供Session等状态管理,jersey没有,这个源自RESTFull设计无状态化;-->
<!--6.Response方法支持更好返回结果,方便的返回Status,包括200,303,401,403;-->
<!--7.提供超级特别方便的方式访问RESTFull;-->
<dependency>
<groupId>com.sun.jersey</groupId>
<artifactId>jersey-client</artifactId>
<version>1.19.4</version>
</dependency>
<!--=============================================================================================-->
<!--MESSAGING-->
<!--=============================================================================================-->
<!--使用SpringAMQP和RabbitMQ的启动程序-->
<!--添加以后会在控制台报错,Rabbit health check failed-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-amqp</artifactId>
<version>3.3.5</version>
</dependency>
<!--Spring for RabbitMQ 消息-->
<!--为您的应用程序提供一个用于发送和接收消息的通用平台,并为您的消息提供一个安全的地方,直到收到为止。-->
<dependency>
<groupId>org.springframework.amqp</groupId>
<artifactId>spring-rabbit-test</artifactId>
<version>3.1.7</version>
<scope>test</scope>
</dependency>
<!--json的序列化依赖-->
<!--相当于,使用这个依赖覆盖默认的jdk序列化方式-->
<!--Jackson是当前用的比较广泛的,用来序列化和反序列化 json 的 Java 的开源框架。-->
<!--Jackson社区相对比较活跃,更新速度也比较快, 从 Github 中的统计来看,Jackson 是最流行的 json 解析器之一 。 -->
<!--SpringMVC 的默认 json 解析器便是 Jackson。 Jackson 优点很多。 Jackson 所依赖的 jar 包较少 ,简单易用。-->
<!--与其他Java 的 json 的框架 Gson 等相比, Jackson 解析大的 json 文件速度比较快;Jackson 运行时占用内存比较低,性能比较好;-->
<!--Jackson有灵活的 API,可以很容易进行扩展和定制。-->
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.18.0</version>
</dependency>
<!--JMS支持包,包括用于发送/接收JMS消息的辅助类-->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jms</artifactId>
<version>6.1.14</version>
</dependency>
<!--=============================================================================================-->
<!--日志系统-->
<!--=============================================================================================-->
<!--ApacheKafka Streams的Spring 讯息交流-->
<!--使用ApacheKafka Streams构建流处理应用程序。-->
<!--Spring for Apache Kafka MESSAGING-->
<!--发布、订阅、存储和处理记录流。-->
<dependency>
<groupId>org.apache.kafka</groupId>
<artifactId>kafka-clients</artifactId>
<!-- 3.7和spring不兼容 -->
<version>3.8.0</version>
</dependency>
<dependency>
<groupId>org.springframework.kafka</groupId>
<artifactId>spring-kafka</artifactId>
<version>3.2.3</version>
</dependency>
<!--Scala是一种运行在JVM上的一种编程语言(运行在JVM上的编程语言还有Groovy和Kotlin),即最终都会编译成.class文件。-->
<!--Scala编程语言的特点:-->
<!--面向对象-->
<!--函数式编程-->
<!--开发效率高,表达能力强:scala一行代码抵java多行代码-->
<!--哪些框架是使用Scala开发的:-->
<!--Spark是使用Scala编程语言开发的。开发Spark程序可以使用Java、Python和Scala,但是Scala是最优雅的方式-->
<!--Kafka也是使用Scala编写的-->
<dependency>
<groupId>org.scala-lang</groupId>
<artifactId>scala-library</artifactId>
<version>2.13.15</version>
</dependency>
<!--=============================================================================================-->
<!--数据库和jdbc-->
<!--=============================================================================================-->
<!--JDBC API SQL-->
<!--数据库连接API,定义了客户端如何连接和查询数据库。-->
<!--没有配置,项目报错,启动失败-->
<!--<dependency>-->
<!-- <groupId>org.springframework.boot</groupId>-->
<!--spring操作数据库的包-->
<!--<artifactId>spring-boot-starter-data-jdbc</artifactId>-->
<!--<version>3.3.0</version>-->
<!--</dependency>-->
<!--SpringData JDBC SQL-->
<!--使用SpringData,用普通的JDBC在SQL存储中保存数据。-->
<!--没有配置,项目报错,启动失败-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jdbc</artifactId>
<version>3.3.5</version>
</dependency>
<!--MySQL JDBC driver.驱动-->
<!--mysql的驱动-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.33</version>
<scope>runtime</scope>
</dependency>
<!--=============================================================================================-->
<!--Mybatis-->
<!--=============================================================================================-->
<!--mybatis的分页助手插件-->
<!--2023年11月26日14:24:04,有依赖冲突问题,和Mybatis-plus-->
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper</artifactId>
<version>6.1.0</version>
</dependency>
<!--JSP标准标签库(JSTL)是一个JSP标签集合,它封装了JSP应用的通用核心功能。-->
<!--JSTL支持通用的、结构化的任务,比如迭代,条件判断,XML文档操作,国际化标签,SQL标签。除了这些,它还提供了一个框架来使用集成JSTL的自定义标签。-->
<!--<dependency>-->
<!-- <groupId>jstl</groupId>-->
<!-- <artifactId>jstl</artifactId>-->
<!-- <version>1.1.2</version>-->
<!--</dependency>-->
<!--在JSP页面中使用的标记所组成的库。JSP容器推出时带有一个小型的、默认的标记库。-->
<!--<dependency>-->
<!-- <groupId>taglibs</groupId>-->
<!-- <artifactId>standard</artifactId>-->
<!-- <version>1.1.2</version>-->
<!--</dependency>-->
<!--MyBatis框架SQL-->
<!--持久性框架,支持自定义SQL,存储过程和高级映射。MyBatis使用XML描述符或注解将对象与存储程序或SQL语句结合起来。-->
<!--这里是mybatis按照spring的标准,开发出来的整合包-->
<!--没有配置,项目报错,启动失败-->
<!--<dependency>-->
<!-- <groupId>com.baomidou</groupId>-->
<!-- <artifactId>mybatis-plus-spring-boot3-starter</artifactId>-->
<!-- <version>3.5.7</version>-->
<!--</dependency>-->
<!--使用mybatis-plus以后,这些东西就不需要了-->
<!--没有配置,项目报错,启动失败-->
<!--<dependency>-->
<!-- <groupId>com.baomidou</groupId>-->
<!-- <artifactId>mybatis-plus-boot3-starter</artifactId>-->
<!-- <version>3.5.7</version>-->
<!--依赖中一共两个jar包-->
<!--一个是mybatis和spring整合包-->
<!--一个是mybatis包-->
<!--</dependency>-->
<!-- mybatis-plus 多数据源 -->
<!--目前,多数项目会有多数据源的要求,或者是主从部署的要求,所以我们还需要引入mybatis-plus 关于多数据源的依赖:-->
<!--<dependency>-->
<!-- <groupId>com.baomidou</groupId>-->
<!-- <artifactId>dynamic-datasource-spring-boot-starter</artifactId>-->
<!-- <version>4.3.1</version>-->
<!--</dependency>-->
<!--mybatis-plus的代码生成器-->
<!--<dependency>-->
<!-- <groupId>com.baomidou</groupId>-->
<!-- <artifactId>mybatis-plus-generator</artifactId>-->
<!-- <version>3.5.7</version>-->
<!--</dependency>-->
<!--生成器对应的模板技术-->
<!--Web应用程序:作为为应用程序的视图,展示数据-->
<!--源代码生成:Velocity用于基于模板生成Java源代码-->
<!--自动电子邮件:网站注册,认证等的电子邮件模板-->
<!--网页静态化:基于velocity模板,生成静态网页-->
<!--<dependency>-->
<!-- <groupId>org.apache.velocity</groupId>-->
<!-- <artifactId>velocity-engine-core</artifactId>-->
<!-- <version>2.3</version>-->
<!--</dependency>-->
<!--mybatis-plus-generator-ui可视化工具-->
<!--提供交互式的WebUI用于生成兼容mybatis-plus框架的相关功能代码,-->
<!--包括Entity,Mapper,Mapper.xml,Service,Controller等-->
<!--可以自定义模板以及各类输出参数,也可通过SQL查询语句直接生成代码。-->
<!--引入maven的相关依赖,注意scope只需要写test就可以了-->
<!--在项目的test目录新建一个启动类,代码示例如下:-->
<!--运行该启动类,启动一个Generator
Server。然后访问http://localhost:8068(端口是可配置的)即可进入到管理界面。-->
<!--这个依赖比较尴尬,一方面更新比较慢,导致依赖总是报错,另一个方面,使用的次数不多,这里暂时保留,以防万一-->
<!--<dependency>-->
<!-- <groupId>com.github.davidfantasy</groupId>-->
<!-- <artifactId>mybatis-plus-generator-ui</artifactId>-->
<!-- <version>2.0.5</version>-->
<!-- <scope>test</scope>-->
<!--</dependency>-->
<!--Mybatis-Flex是一个优雅的 Mybatis 增强框架,它非常轻量、同时拥有极高的性能与灵活性。-->
<!--MyBatis-Flex的查询单条数据的速度,大概是 MyBatis-Plus 的 5 ~ 10+ 倍。-->
<!--MyBatis-Flex的查询 10 条数据的速度,大概是 MyBatis-Plus 的 5~10 倍左右。-->
<!--Mybatis-Flex的分页查询速度,大概是 Mybatis-Plus 的 5~10 倍左右。-->
<!--Mybatis-Flex的数据更新速度,大概是 Mybatis-Plus 的 5~10+ 倍。-->
<dependency>
<groupId>com.mybatis-flex</groupId>
<artifactId>mybatis-flex-spring-boot-starter</artifactId>
<version>1.9.7</version>
</dependency>
<!--Mybatis-flex的apt依赖-->
<dependency>
<groupId>com.mybatis-flex</groupId>
<artifactId>mybatis-flex-processor</artifactId>
<version>1.9.7</version>
<scope>provided</scope>
</dependency>
<!--=============================================================================================-->
<!--数据库连接池-->
<!--=============================================================================================-->
<!--c3p0相关包-->
<!--没有配置,项目报错,启动失败-->
<!--<dependency>-->
<!--c3p0是一个连接池对象-->
<!--<groupId>c3p0</groupId>-->
<!--<artifactId>c3p0</artifactId>-->
<!--<version>0.9.0</version>-->
<!--</dependency>-->
<!--阿里巴巴德鲁伊连接池-->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid-spring-boot-starter</artifactId>
<version>1.2.23</version>
</dependency>
<!--HikariCP是一个高性能的 JDBC 连接池组件,号称性能最好的后起之秀,是一个基于BoneCP做了不少的改进和优化的高性能JDBC连接池。-->
<!--其作者还有产出了另外一个开源作品HikariJSON——高性能的JSON解析器。-->
<!--代码体积更是少的可怜,130kb。SpringBoot 2都已经宣布支持了该组件,由之前的Tomcat换成HikariCP。-->
<!--其性能远高于c3p0、tomcat等连接池,以致后来BoneCP作者都放弃了维护,在Github项目主页推荐大家使用HikariCP-->
<dependency>
<groupId>com.zaxxer</groupId>
<artifactId>HikariCP</artifactId>
<!--<version>5.1.0</version>不兼容-->
<version>5.1.0</version>
</dependency>
<!--=============================================================================================-->
<!--redis的包-->
<!--=============================================================================================-->
<!--springboot对redis做了整合-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
<version>3.3.5</version>
</dependency>
<!--用来连接,操作redis-->
<!--ApacheCommons对象池库。-->
<!--jedis是一个java实现的redis客户端连接工具。-->
<!--常用的还有redisson,jedis跟接近于原生的操作,而redisson跟适合用于分布式,提供了分布式锁,以及其他多种数据结构。-->
<dependency>
<groupId>redis.clients</groupId>
<artifactId>jedis</artifactId>
<version>5.2.0</version>
</dependency>
<!--=============================================================================================-->
<!--TEST-->
<!--=============================================================================================-->
<!--SpringTest与JUnit等其他测试框架结合起来,提供了便捷高效的测试手段。-->
<!--而SpringBoot Test 是在Spring Test之上的再次封装,增加了切片测试,增强了mock能力。-->
<!--整体上,SpringBoot Test支持的测试种类,大致可以分为如下三类:-->
<!--单元测试:一般面向方法,编写一般业务代码时,测试成本较大。涉及到的注解有@Test。-->
<!--切片测试:一般面向难于测试的边界功能,介于单元测试和功能测试之间。涉及到的注解有@RunWith@WebMvcTest等。-->
<!--功能测试:一般面向某个完整的业务功能,同时也可以使用切面测试中的mock能力,推荐使用。涉及到的注解有@RunWith@SpringBootTest等。-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<version>3.3.3</version>
<scope>test</scope>
</dependency>
<!--SpringTest支持用JUnit或TestNG对Spring组件进行单元测试和集成测试。-->
<!--它提供了一致的SpringApplicationContexts的加载和缓存,并提供了模拟对象,你可以用它来孤立地测试你的代码。-->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-test</artifactId>
<version>6.1.14</version>
</dependency>
<!--=============================================================================================-->
<!--安全框架-->
<!--=============================================================================================-->
<!--spring安全SECURITY-->
<!--为Spring应用程序提供高度可定制的认证和访问控制框架。-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-security</artifactId>
<version>3.3.5</version>
</dependency>
<dependency>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-test</artifactId>
<version>6.3.3</version>
<scope>test</scope>
</dependency>
<!--设置权限,和jsp相关?暂时注掉-->
<!--<dependency>-->
<!-- <groupId>org.springframework.security</groupId>-->
<!-- <artifactId>spring-security-taglibs</artifactId>-->
<!-- <version>6.3.1</version>-->
<!--</dependency>-->
<!--特殊依赖,但是保留会报错,有安全问题,暂时注掉-->
<!--kaptcha是一个很有用的验证码生成工具。有了它,你能够生成各种样式的验证码,由于它是可配置的。-->
<!--kaptcha工作的原理是调用com.google.code.kaptcha.servlet.KaptchaServlet,生成一个图片。-->
<!--同一时候将生成的验证码字符串放到HttpSession中。-->
<!--<dependency>-->
<!-- <groupId>com.github.penggle</groupId>-->
<!-- <artifactId>kaptcha</artifactId>-->
<!-- <version>2.3.2</version>-->
<!-- <exclusions>-->
<!-- <exclusion>-->
<!-- <groupId>javax.servlet</groupId>-->
<!-- <artifactId>javax.servlet-api</artifactId>-->
<!-- </exclusion>-->
<!-- </exclusions>-->
<!--</dependency>-->
<!--特殊依赖,但是保留会报错,有安全问题,暂时注掉-->
<!--=============================================================================================-->
<!--dubbo相关-->
<!--=============================================================================================-->
<!--dubbo一体式项目-->
<!--Dubbo是一款高性能、轻量级的开源JavaRPC框架,它提供了三大核心能力:-->
<!--面向接口的远程方法调用,智能容错和负载均衡,以及服务自动注册和发现。-->
<dependency>
<groupId>org.apache.dubbo</groupId>
<artifactId>dubbo</artifactId>
<version>3.3.1</version>
</dependency>
<!--zookeeper是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、域名服务、分布式同步、组服务等。-->
<!--没有配置,项目报错,启动失败-->
<!--<dependency>-->
<!-- <groupId>org.apache.zookeeper</groupId>-->
<!-- <artifactId>zookeeper</artifactId>-->
<!-- <version>3.9.2</version>-->
<!--</dependency>-->
<!--=============================================================================================-->
<!--文件IO-->
<!--=============================================================================================-->
<!-- 文件上传组件 -->
<dependency>
<!--注掉,和Commons-io有冲突-->
<!--但是比Commons-io范围大-->
<groupId>commons-fileupload</groupId>
<artifactId>commons-fileupload</artifactId>
<version>1.5</version>
</dependency>
<!--Quartz是一个工作调度库,可以嵌入到java应用程序中,支持事务、持久性、集群和插件。-->
<dependency>
<groupId>org.quartz-scheduler</groupId>
<artifactId>quartz</artifactId>
<version>2.3.2</version>
</dependency>
<dependency>
<groupId>org.quartz-scheduler</groupId>
<artifactId>quartz-jobs</artifactId>
<version>2.3.2</version>
</dependency>
<!--存储服务-->
<dependency>
<groupId>com.qiniu</groupId>
<artifactId>qiniu-java-sdk</artifactId>
<version>7.16.0</version>
</dependency>
<!--=============================================================================================-->
<!--springCloud组件-->
<!--=============================================================================================-->
<!-- 网关的服务依赖 -->
<!--没有配置,项目报错,启动失败-->
<!--<dependency>-->
<!-- <groupId>org.springframework.cloud</groupId>-->
<!-- <artifactId>spring-cloud-starter-gateway</artifactId>-->
<!-- <version>4.1.4</version>-->
<!--</dependency>-->
<!-- nacos依赖 -->
<!--cloud版本不匹配,项目报错,启动失败-->
<!--<dependency>-->
<!-- <groupId>com.alibaba.cloud</groupId>-->
<!-- <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>-->
<!-- <version>2021.1</version>-->
<!--</dependency>-->
<!--nacos的管理依赖-->
<!--<dependency>-->
<!-- <groupId>com.alibaba.cloud</groupId>-->
<!-- <artifactId>spring-cloud-alibaba-dependencies</artifactId>-->
<!-- <version>2021.1</version>-->
<!-- <type>pom</type>-->
<!-- <scope>import</scope>-->
<!--</dependency>-->
<!-- nacos配置文件管理依赖,读取bootstrap的 -->
<!--<dependency>-->
<!-- <groupId>com.alibaba.cloud</groupId>-->
<!-- <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>-->
<!-- <version>2021.1</version>-->
<!--</dependency>-->
<!--其实有了nacos,就不需要eureka了-->
<!--所以同时要把子项目中的eureka依赖注释掉-->
<!--注册中心的客户端核心依赖-->
<!--<dependency>-->
<!-- <groupId>org.springframework.cloud</groupId>-->
<!-- <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>-->
<!-- <version>4.1.0</version>-->
<!--</dependency>-->
<!--注册中心的核心依赖-->
<!--<dependency>-->
<!-- <groupId>org.springframework.cloud</groupId>-->
<!-- <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>-->
<!-- <version>4.1.2</version>-->
<!--</dependency>-->
<!--feign客户端依赖-->
<!-- feign内部已经继承了ribbon,不需要额外引入 -->
<!--版本冲突,项目报错,启动失败-->
<!--<dependency>-->
<!-- <groupId>org.springframework.cloud</groupId>-->
<!-- <artifactId>spring-cloud-starter-openfeign</artifactId>-->
<!--<version>4.1.2</version>-->
<!--</dependency>-->
<!--引入HttpClient依赖-->
<!--因为feign不支持连接池,所以这里手动引入一个 -->
<dependency>
<groupId>io.github.openfeign</groupId>
<artifactId>feign-httpclient</artifactId>
<!--<version>13.1</version>-->
<version>13.5</version>
<!--这里是不需要写版本的,因为已经被Spring管理起来了-->
</dependency>
<!--一方面NetflixRibbon停止更新,Spring Cloud LoadBalancer是Spring Cloud官方自己提供的客户端负载均衡器,抽象和实现,用来替代Ribbon。-->
<!--常见负载均衡器分为服务端负载均衡器(如网关层均衡负载)和客户端层均衡负载。-->
<!--网关层如硬件层面的F5或软件层面的LVS、或者nginx等。-->
<!--客户端层就如SpringCloud LoadBalancer,作为一个客户端去发现更新维护服务列表,自定义服务的均衡负载策略(随机、轮询、小流量的金丝雀等等)。-->
<!--SpringCloud提供了自己的客户端负载平衡器抽象和实现。-->
<!--对于负载均衡机制,增加了ReactiveLoadBalancer接口,并提供了基于round-robin轮询和Random随机的实现。-->
<!--为了从响应式ServiceInstanceListSupplier中选择实例,需要使用ServiceInstanceListSupplier。-->
<!--目前支持ServiceInstanceListSupplier的基于服务发现的实现,该实现使用类路径中的发现客户端从Service
Discovery中检索可用的实例。-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-loadbalancer</artifactId>
<version>4.1.4</version>
<!--4.0.4版本会出现依赖冲突,以国内的阿里巴巴为主-->
</dependency>
<!--引入sentinel依赖-->
<!--报错:-->
<!--<dependency>-->
<!-- <groupId>com.alibaba.cloud</groupId>-->
<!-- <artifactId>spring-cloud-starter-alibaba-sentinel</artifactId>-->
<!--</dependency>-->
<!--<dependency>-->
<!-- <groupId>com.alibaba.csp</groupId>-->
<!-- <artifactId>sentinel-datasource-nacos</artifactId>-->
<!--</dependency>-->
<!--=============================================================================================-->
<!--分布式组件-->
<!--=============================================================================================-->
<!--java项目使用restful风格的接口来调用elasticSearch-->
<!--<dependency>-->
<!-- <groupId>org.elasticsearch.client</groupId>-->
<!-- <artifactId>elasticsearch-rest-high-level-client</artifactId>-->
<!-- <version>7.17.22</version>-->
<!--依赖冲突,暂时注掉-->
<!--</dependency>-->
<!--=============================================================================================-->
<!--高并发组件-->
<!--=============================================================================================-->
<!--高并发依赖-->
<dependency>
<groupId>com.lmax</groupId>
<artifactId>disruptor</artifactId>
<version>4.0.0</version>
</dependency>
<!--=============================================================================================-->
<!--swagger文档组件-->
<!--=============================================================================================-->
<!--这里需要使用swagger技术,实际上是为了生成接口文档-->
<!--SpringBoot 3 只支持OpenAPI3规范-->
<!--Knife4j提供的starter已经引用springdoc-openapi的jar,开发者需注意避免jar包冲突-->
<!--JDK版本必须>= 17-->
<!--详细Demo请参考knife4j-spring-boot3-demo-->
<!--访问Knife4j的文档地址:http://ip:port/doc.html即可查看文档-->
<dependency>
<groupId>com.github.xiaoymin</groupId>
<artifactId>knife4j-openapi3-jakarta-spring-boot-starter</artifactId>
<version>4.5.0</version>
</dependency>
<!--swagger文档-->
<!--<dependency>-->
<!-- <groupId>io.springfox</groupId>-->
<!-- <artifactId>springfox-swagger2</artifactId>-->
<!-- <version>3.0.0</version>-->
<!--</dependency>-->
<!--<dependency>-->
<!-- <groupId>io.springfox</groupId>-->
<!-- <artifactId>springfox-swagger-ui</artifactId>-->
<!-- <version>3.0.0</version>-->
<!--</dependency>-->
<!--正如XPath之于XML文档一样,JsonPath为Json文档提供了解析能力。-->
<!--通过使用JsonPath,你可以方便的查找节点、获取想要的数据,JsonPath是Json版的XPath。-->
<dependency>
<groupId>com.jayway.jsonpath</groupId>
<artifactId>json-path</artifactId>
</dependency>
<!--=============================================================================================-->
<!--项目特殊依赖-->
<!--=============================================================================================-->
<!--SpringNative 可以通过 GraalVM 将 Spring 应用程序编译成原生镜像,提供了一种新的方式来部署 Spring 应用。-->
<!--SpringNative 支持 Java 和 Kotlin。-->
<!--这个项目的目标是寻找Spring JVM 的替代方案,提供一个能将应用程序打包,并运行在轻量级容器的方案。-->
<!--期望能够在Spring Native 中支持所有的 Spring 应用程序(几乎不用修改代码)。-->
<!--添加这个依赖以后,阿里云效找不到依赖,以后建议全部注释掉-->
<!--<dependency>-->
<!-- <groupId>org.springframework.experimental</groupId>-->
<!-- <artifactId>spring-native</artifactId>-->
<!-- <version>0.12.0</version>-->
<!--</dependency>-->
<!--Selenium是一系列基于Web的自动化工具,提供一套测试函数,用于支持Web自动化测试。函数非常灵活,能够完成界面元素定位、窗口跳转、结果比较。-->
<!--<dependency>-->
<!-- <groupId>org.seleniumhq.selenium</groupId>-->
<!-- <artifactId>selenium-java</artifactId>-->
<!-- <version>4.21.0</version>-->
<!--</dependency>-->
<!--FreeMarker是一款模板引擎:即一种基于模板和要改变的数据,并用来生成输出文本(HTML网页,电子邮件,配置文件,源代码等)的通用工具。-->
<!--它不是面向最终用户的,而是一个Java类库,是一款程序员可以嵌入他们所开发产品的组件。-->
<!--<dependency>-->
<!-- <groupId>org.freemarker</groupId>-->
<!-- <artifactId>freemarker</artifactId>-->
<!-- <version>2.3.33</version>-->
<!--</dependency>-->
<!--DOM4J是dom4j.org 出品的一个开源 XML 解析包。DOM4J应用于 Java 平台,采用了 Java 集合框架并完全支持 DOM,SAX 和 JAXP。-->
<!--DOM4J使用起来非常简单。只要你了解基本的XML-DOM 模型,就能使用。-->
<!--Dom:把整个文档作为一个对象。Dom把XML文档转换为一个包含其内容的树,并且可以对树进行遍历,检索或修改。-->
<!--DOM4J最大的特色是使用大量的接口。它的主要接口都在org.dom4j里面定义:-->
<!--<dependency>-->
<!-- <groupId>org.dom4j</groupId>-->
<!-- <artifactId>dom4j</artifactId>-->
<!-- <version>2.1.4</version>-->
<!--</dependency>-->
<!--用于Java解析xml的类库-->
<!--<dependency>-->
<!-- <groupId>xerces</groupId>-->
<!-- <artifactId>xercesImpl</artifactId>-->
<!-- <version>2.12.2</version>-->
<!--</dependency>-->
<!--阿里云短信服务-->
<!--阿帕奇HttpComponents客户端-->
<!--<dependency>-->
<!-- <groupId>com.aliyun</groupId>-->
<!-- <artifactId>aliyun-java-sdk-core</artifactId>-->
<!-- <version>4.6.4</version>-->
<!--</dependency>-->
<!--<dependency>-->
<!-- <groupId>com.aliyun</groupId>-->
<!-- <artifactId>aliyun-java-sdk-dysmsapi</artifactId>-->
<!-- <version>2.2.1</version>-->
<!--</dependency>-->
<!--POI报表-->
<!--ApachePOI 访问微软格式文件的Java API-->
<!--<dependency>-->
<!-- <groupId>org.apache.poi</groupId>-->
<!-- <artifactId>poi</artifactId>-->
<!-- <version>5.2.5</version>-->
<!--</dependency>-->
<!--<dependency>-->
<!-- <groupId>org.apache.poi</groupId>-->
<!-- <artifactId>poi-ooxml</artifactId>-->
<!-- <version>5.2.5</version>-->
<!--</dependency>-->
</dependencies>
<build>
<!--<resources>-->
<!-- <resource>-->
<!-- <directory>src/main/java</directory>-->
<!-- <includes>-->
<!-- <include>**/*.*</include>-->
<!-- </includes>-->
<!-- <excludes>-->
<!-- <exclude>**/*.java</exclude>-->
<!-- </excludes>-->
<!-- </resource>-->
<!--</resources>-->
<!--这里有个神奇的bug,csdn说是没有扫描到对应的文件-->
<!--所以需要添加上面的配置-->
<!--但是我用idea自带的创建工具,就在路径下创建了一个完全相同的路径,然后在里面自动创建了一个配置文件-->
<!--但是上面两个都是无效的-->
<!--我使用idea自带的配置文件创建工具,直接创建对应名称对象,就解决了该问题-->
<!--=============================================================================================-->
<!--DEVELOPER_TOOLS-->
<!--=============================================================================================-->
<plugins>
<!--GraalVM本地支持开发者工具-->
<!--支持使用GraalVM本地图像编译器将Spring应用程序编译为本地可执行文件。-->
<!-- <plugin>-->
<!-- <groupId>org.graalvm.buildtools</groupId>-->
<!-- <artifactId>native-maven-plugin</artifactId>-->
<!-- </plugin>-->
<!-- <plugin>-->
<!-- <groupId>org.springframework.boot</groupId>-->
<!-- <artifactId>spring-boot-maven-plugin</artifactId>-->
<!-- <configuration>-->
<!-- <!–<fork>true</fork>–>-->
<!-- <addResources>true</addResources>-->
<!-- <excludes>-->
<!-- <exclude>-->
<!-- <groupId>org.projectlombok</groupId>-->
<!-- <artifactId>lombok</artifactId>-->
<!-- </exclude>-->
<!-- </excludes>-->
<!-- <!–<classifier>${repackage.classifier}</classifier>–>-->
<!-- <image>-->
<!-- <builder>paketobuildpacks/builder:tiny</builder>-->
<!-- <env>-->
<!-- <BP_NATIVE_IMAGE>true</BP_NATIVE_IMAGE>-->
<!-- </env>-->
<!-- </image>-->
<!-- </configuration>-->
<!-- </plugin>-->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
<version>3.3.0</version>
<!--添加这个插件以后,我们就可以直接使用pom中的配置文件-->
<!--接着,其它地方就可以解析这里的配置参数-->
<configuration>
<encoding>UTF-8</encoding>
<useDefaultDelimiters>true</useDefaultDelimiters>
</configuration>
</plugin>
<!-- java编译插件 -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.11.0</version>
<configuration>
<source>17</source>
<target>17</target>
<encoding>UTF-8</encoding>
<!--<path>-->
<!--mybatis-flex的apt设置,如果添加以下代码,就不需要在上面加flex-processor依赖-->
<!-- <groupId>com.mybatis-flex</groupId>-->
<!-- <artifactId>mybatis-flex-processor</artifactId>-->
<!-- <version>1.7.5</version>-->
<!--</path>-->
</configuration>
</plugin>
<!--注掉下面的配置,否则maven:install报错-->
<!--<plugin>-->
<!-- <groupId>org.springframework.experimental</groupId>-->
<!-- <artifactId>spring-aot-maven-plugin</artifactId>-->
<!-- <executions>-->
<!-- <execution>-->
<!-- <id>test-generate</id>-->
<!-- <goals>-->
<!-- <goal>test-generate</goal>-->
<!-- </goals>-->
<!-- </execution>-->
<!-- <execution>-->
<!-- <id>generate</id>-->
<!-- <goals>-->
<!-- <goal>generate</goal>-->
<!-- </goals>-->
<!-- </execution>-->
<!-- </executions>-->
<!--</plugin>-->
<!--修改pom.xml配置,编译出不带 lib 文件夹的Jar包-->
<!--生成的 Jar 包体积明显变小, 外部的 jar 包已经不会被引入了-->
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<mainClass>com.johnnian.App</mainClass>
<layout>ZIP</layout>
<includes>
<include>
<groupId>nothing</groupId>
<artifactId>nothing</artifactId>
</include>
</includes>
</configuration>
<executions>
<execution>
<goals>
<goal>repackage</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
<repositories>
<!--阿里云搭建了一个国内镜像http://maven.aliyun.com,跑起来速度很快,可以进行配置-->
<repository>
<id>nexus-aliyun</id>
<name>nexus-aliyun</name>
<url>https://maven.aliyun.com/nexus/content/groups/public/</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>false</enabled>
</snapshots>
</repository>
<repository>
<id>spring-releases</id>
<name>Spring Releases</name>
<url>https://repo.spring.io/release</url>
<snapshots>
<enabled>false</enabled>
</snapshots>
</repository>
<repository>
<id>spring-milestones</id>
<name>Spring Milestones</name>
<url>https://repo.spring.io/milestone</url>
<snapshots>
<enabled>false</enabled>
</snapshots>
</repository>
<repository>
<id>spring-snapshots</id>
<name>Spring Snapshots</name>
<url>https://repo.spring.io/snapshot</url>
<releases>
<enabled>false</enabled>
</releases>
</repository>
</repositories>
<pluginRepositories>
<pluginRepository>
<id>spring-releases</id>
<name>Spring Releases</name>
<url>https://repo.spring.io/release</url>
<snapshots>
<enabled>false</enabled>
</snapshots>
</pluginRepository>
<pluginRepository>
<id>spring-milestones</id>
<name>Spring Milestones</name>
<url>https://repo.spring.io/milestone</url>
<snapshots>
<enabled>false</enabled>
</snapshots>
</pluginRepository>
<pluginRepository>
<id>spring-snapshots</id>
<name>Spring Snapshots</name>
<url>https://repo.spring.io/snapshot</url>
<releases>
<enabled>false</enabled>
</releases>
</pluginRepository>
</pluginRepositories>
<profiles>
<!--下面实际上就是配置多环境运行的配置-->
<profile>
<id>native</id>
<properties>
<repackage.classifier>exec</repackage.classifier>
</properties>
<dependencies>
<dependency>
<groupId>org.junit.platform</groupId>
<artifactId>junit-platform-launcher</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.graalvm.buildtools</groupId>
<artifactId>native-maven-plugin</artifactId>
<!--<version>${native-buildtools.version}</version>-->
<!--<version>0.9.13</version>-->
<extensions>true</extensions>
<executions>
<execution>
<id>test-native</id>
<phase>test</phase>
<goals>
<goal>test</goal>
</goals>