pom.xml
  1  <?xml version="1.0" encoding="UTF-8"?>
  2  
  3  <!--
  4  SPDX-FileCopyrightText: 2023 LakeSoul Contributors
  5  
  6  SPDX-License-Identifier: Apache-2.0
  7  -->
  8  
  9  <project xmlns="http://maven.apache.org/POM/4.0.0"
 10           xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 11           xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
 12      <parent>
 13          <artifactId>lakesoul-parent</artifactId>
 14          <groupId>com.dmetasoul</groupId>
 15          <version>${revision}</version>
 16          <relativePath>../../pom.xml</relativePath>
 17      </parent>
 18  
 19      <modelVersion>4.0.0</modelVersion>
 20      <artifactId>lakesoul-io-java</artifactId>
 21      <version>${revision}</version>
 22      <packaging>jar</packaging>
 23      <name>LakeSoul IO Java</name>
 24  
 25      <properties>
 26          <maven.compiler.source>8</maven.compiler.source>
 27          <maven.compiler.target>8</maven.compiler.target>
 28          <arrow.version>15.0.2</arrow.version>
 29          <scala.binary.version>2.12</scala.binary.version>
 30          <scala.version>2.12.15</scala.version>
 31          <scalatest.version>3.1.0</scalatest.version>
 32          <substrait.version>0.30.0</substrait.version>
 33          <protobuf.version>3.25.5</protobuf.version>
 34          <protobuf.plugin.version>0.6.1</protobuf.plugin.version>
 35      </properties>
 36  
 37      <dependencies>
 38          <dependency>
 39              <groupId>com.dmetasoul</groupId>
 40              <artifactId>lakesoul-common</artifactId>
 41              <version>${revision}</version>
 42              <exclusions>
 43                  <exclusion>
 44                      <groupId>org.casbin</groupId>
 45                      <artifactId>jdbc-adapter</artifactId>
 46                  </exclusion>
 47              </exclusions>
 48          </dependency>
 49          <dependency>
 50              <groupId>org.apache.arrow</groupId>
 51              <artifactId>arrow-vector</artifactId>
 52              <version>${arrow.version}</version>
 53              <exclusions>
 54                  <exclusion>
 55                      <groupId>io.netty</groupId>
 56                      <artifactId>*</artifactId>
 57                  </exclusion>
 58              </exclusions>
 59          </dependency>
 60          <dependency>
 61              <groupId>org.apache.arrow</groupId>
 62              <artifactId>arrow-memory-netty</artifactId>
 63              <version>${arrow.version}</version>
 64              <exclusions>
 65                  <exclusion>
 66                      <groupId>io.netty</groupId>
 67                      <artifactId>*</artifactId>
 68                  </exclusion>
 69                  <exclusion>
 70                      <groupId>org.slf4j</groupId>
 71                      <artifactId>*</artifactId>
 72                  </exclusion>
 73              </exclusions>
 74          </dependency>
 75          <dependency>
 76              <groupId>io.netty</groupId>
 77              <artifactId>netty-buffer</artifactId>
 78              <version>4.1.112.Final</version>
 79          </dependency>
 80          <dependency>
 81              <groupId>org.apache.arrow</groupId>
 82              <artifactId>arrow-memory-core</artifactId>
 83              <exclusions>
 84                  <exclusion>
 85                      <groupId>org.slf4j</groupId>
 86                      <artifactId>*</artifactId>
 87                  </exclusion>
 88              </exclusions>
 89              <version>${arrow.version}</version>
 90          </dependency>
 91          <dependency>
 92              <groupId>org.apache.arrow</groupId>
 93              <artifactId>arrow-c-data</artifactId>
 94              <version>${arrow.version}</version>
 95              <exclusions>
 96                  <exclusion>
 97                      <groupId>org.slf4j</groupId>
 98                      <artifactId>*</artifactId>
 99                  </exclusion>
100              </exclusions>
101          </dependency>
102  
103          <!-- scala deps -->
104          <dependency>
105              <groupId>org.scala-lang</groupId>
106              <artifactId>scala-library</artifactId>
107              <version>${scala.version}</version>
108          </dependency>
109          <dependency>
110              <groupId>org.scala-lang</groupId>
111              <artifactId>scala-compiler</artifactId>
112              <version>${scala.version}</version>
113              <scope>${local.scope}</scope>
114          </dependency>
115          <dependency>
116              <groupId>org.scala-lang</groupId>
117              <artifactId>scala-reflect</artifactId>
118              <version>${scala.version}</version>
119          </dependency>
120  
121  
122          <!-- jnr-ffi deps-->
123          <dependency>
124              <groupId>com.github.jnr</groupId>
125              <artifactId>jnr-ffi</artifactId>
126              <version>2.2.19</version>
127          </dependency>
128  
129          <dependency>
130              <groupId>io.substrait</groupId>
131              <artifactId>core</artifactId>
132              <exclusions>
133                  <exclusion>
134                      <groupId>org.slf4j</groupId>
135                      <artifactId>slf4j-jdk14</artifactId>
136                  </exclusion>
137                  <exclusion>
138                      <groupId>com.google.protobuf</groupId>
139                      <artifactId>protobuf-java</artifactId>
140                  </exclusion>
141                  <exclusion>
142                      <groupId>org.scala-lang</groupId>
143                      <artifactId>scala-reflect</artifactId>
144                  </exclusion>
145                  <exclusion>
146                      <groupId>com.fasterxml.jackson.core</groupId>
147                      <artifactId>*</artifactId>
148                  </exclusion>
149                  <exclusion>
150                      <groupId>com.fasterxml.jackson.core</groupId>
151                      <artifactId>jackson-annotations</artifactId>
152                  </exclusion>
153                  <exclusion>
154                      <groupId>com.fasterxml.jackson.core</groupId>
155                      <artifactId>jackson-core</artifactId>
156                  </exclusion>
157              </exclusions>
158              <version>${substrait.version}</version>
159              <scope>compile</scope>
160          </dependency>
161  
162          <!-- protobuf -->
163          <dependency>
164              <groupId>com.google.protobuf</groupId>
165              <artifactId>protobuf-java</artifactId>
166              <version>${protobuf.version}</version>
167          </dependency>
168  
169          <dependency>
170              <groupId>org.apache.spark</groupId>
171              <artifactId>spark-catalyst_${scala.binary.version}</artifactId>
172              <version>${spark.version}</version>
173              <exclusions>
174                  <exclusion>
175                      <groupId>org.apache.hadoop</groupId>
176                      <artifactId>*</artifactId>
177                  </exclusion>
178                  <exclusion>
179                      <groupId>org.apache.arrow</groupId>
180                      <artifactId>*</artifactId>
181                  </exclusion>
182                  <exclusion>
183                      <groupId>io.netty</groupId>
184                      <artifactId>netty-all</artifactId>
185                  </exclusion>
186                  <exclusion>
187                      <groupId>org.slf4j</groupId>
188                      <artifactId>*</artifactId>
189                  </exclusion>
190                  <exclusion>
191                      <groupId>log4j</groupId>
192                      <artifactId>*</artifactId>
193                  </exclusion>
194                  <exclusion>
195                      <groupId>org.apache.logging.log4j</groupId>
196                      <artifactId>*</artifactId>
197                  </exclusion>
198                  <exclusion>
199                      <groupId>org.scala-lang</groupId>
200                      <artifactId>scala-reflect</artifactId>
201                  </exclusion>
202                  <exclusion>
203                      <groupId>org.scala-lang</groupId>
204                      <artifactId>scala-library</artifactId>
205                  </exclusion>
206                  <exclusion>
207                      <groupId>org.apache.commons</groupId>
208                      <artifactId>commons-lang3</artifactId>
209                  </exclusion>
210                  <exclusion>
211                      <groupId>org.apache.spark</groupId>
212                      <artifactId>spark-sketch_${scala.binary.version}</artifactId>
213                  </exclusion>
214                  <exclusion>
215                      <groupId>org.apache.spark</groupId>
216                      <artifactId>spark-tags_${scala.binary.version}</artifactId>
217                  </exclusion>
218                  <exclusion>
219                      <groupId>org.apache.spark</groupId>
220                      <artifactId>spark-unsafe_${scala.binary.version}</artifactId>
221                  </exclusion>
222                  <exclusion>
223                      <groupId>org.apache.spark</groupId>
224                      <artifactId>spark-network-common_${scala.binary.version}</artifactId>
225                  </exclusion>
226                  <exclusion>
227                      <groupId>org.apache.spark</groupId>
228                      <artifactId>spark-network-shuffle_${scala.binary.version}</artifactId>
229                  </exclusion>
230                  <exclusion>
231                      <groupId>org.apache.spark</groupId>
232                      <artifactId>spark-launcher_${scala.binary.version}</artifactId>
233                  </exclusion>
234                  <exclusion>
235                      <groupId>org.apache.spark</groupId>
236                      <artifactId>spark-kvstore_${scala.binary.version}</artifactId>
237                  </exclusion>
238                  <exclusion>
239                      <groupId>com.google.code.findbugs</groupId>
240                      <artifactId>jsr305</artifactId>
241                  </exclusion>
242                  <exclusion>
243                      <groupId>org.apache.avro</groupId>
244                      <artifactId>*</artifactId>
245                  </exclusion>
246                  <exclusion>
247                      <groupId>org.apache.curator</groupId>
248                      <artifactId>curator-recipes</artifactId>
249                  </exclusion>
250                  <exclusion>
251                      <groupId>jakarta.servlet</groupId>
252                      <artifactId>*</artifactId>
253                  </exclusion>
254                  <exclusion>
255                      <groupId>org.xerial.snappy</groupId>
256                      <artifactId>snappy-java</artifactId>
257                  </exclusion>
258                  <exclusion>
259                      <groupId>org.apache.zookeeper</groupId>
260                      <artifactId>*</artifactId>
261                  </exclusion>
262                  <exclusion>
263                      <groupId>org.glassfish.jersey.core</groupId>
264                      <artifactId>*</artifactId>
265                  </exclusion>
266                  <exclusion>
267                      <groupId>org.glassfish.jersey.containers</groupId>
268                      <artifactId>*</artifactId>
269                  </exclusion>
270                  <exclusion>
271                      <groupId>com.fasterxml.jackson.core</groupId>
272                      <artifactId>*</artifactId>
273                  </exclusion>
274                  <exclusion>
275                      <groupId>com.fasterxml.jackson.module</groupId>
276                      <artifactId>*</artifactId>
277                  </exclusion>
278                  <exclusion>
279                      <groupId>io.dropwizard.metrics</groupId>
280                      <artifactId>*</artifactId>
281                  </exclusion>
282                  <exclusion>
283                      <groupId>org.codehaus.janino</groupId>
284                      <artifactId>*</artifactId>
285                  </exclusion>
286                  <exclusion>
287                      <groupId>org.glassfish.jersey.containers</groupId>
288                      <artifactId>*</artifactId>
289                  </exclusion>
290                  <exclusion>
291                      <groupId>org.glassfish.jersey.inject</groupId>
292                      <artifactId>*</artifactId>
293                  </exclusion>
294                  <exclusion>
295                      <groupId>com.github.luben</groupId>
296                      <artifactId>*</artifactId>
297                  </exclusion>
298                  <exclusion>
299                      <groupId>org.roaringbitmap</groupId>
300                      <artifactId>*</artifactId>
301                  </exclusion>
302                  <exclusion>
303                      <groupId>org.lz4</groupId>
304                      <artifactId>*</artifactId>
305                  </exclusion>
306                  <exclusion>
307                      <groupId>com.ning</groupId>
308                      <artifactId>*</artifactId>
309                  </exclusion>
310                  <exclusion>
311                      <groupId>net.razorvine</groupId>
312                      <artifactId>*</artifactId>
313                  </exclusion>
314                  <exclusion>
315                      <groupId>net.sf.py4j</groupId>
316                      <artifactId>*</artifactId>
317                  </exclusion>
318                  <exclusion>
319                      <groupId>com.twitter</groupId>
320                      <artifactId>*</artifactId>
321                  </exclusion>
322                  <exclusion>
323                      <groupId>org.apache.ivy</groupId>
324                      <artifactId>*</artifactId>
325                  </exclusion>
326                  <exclusion>
327                      <groupId>oro</groupId>
328                      <artifactId>*</artifactId>
329                  </exclusion>
330                  <exclusion>
331                      <groupId>org.antlr</groupId>
332                      <artifactId>*</artifactId>
333                  </exclusion>
334                  <exclusion>
335                      <groupId>org.apache.xbean</groupId>
336                      <artifactId>*</artifactId>
337                  </exclusion>
338                  <exclusion>
339                      <groupId>org.apache.commons</groupId>
340                      <artifactId>*</artifactId>
341                  </exclusion>
342                  <exclusion>
343                      <groupId>commons-codec</groupId>
344                      <artifactId>*</artifactId>
345                  </exclusion>
346                  <exclusion>
347                      <groupId>commons-io</groupId>
348                      <artifactId>*</artifactId>
349                  </exclusion>
350                  <exclusion>
351                      <groupId>commons-collections</groupId>
352                      <artifactId>*</artifactId>
353                  </exclusion>
354                  <exclusion>
355                      <groupId>com.univocity</groupId>
356                      <artifactId>*</artifactId>
357                  </exclusion>
358                  <exclusion>
359                      <groupId>com.clearspring.analytics</groupId>
360                      <artifactId>*</artifactId>
361                  </exclusion>
362                  <exclusion>
363                      <groupId>javax.activation</groupId>
364                      <artifactId>*</artifactId>
365                  </exclusion>
366              </exclusions>
367          </dependency>
368      </dependencies>
369  
370      <profiles>
371          <profile>
372              <id>native-dev</id>
373              <activation>
374                  <activeByDefault>true</activeByDefault>
375              </activation>
376              <build>
377                  <resources>
378                      <resource>
379                          <directory>${basedir}/../../rust/target/release/</directory>
380                          <includes>
381                              <include>liblakesoul_io_c.dylib</include>
382                              <include>liblakesoul_io_c.so</include>
383                              <include>lakesoul_io_c.dll</include>
384                          </includes>
385                          <excludes>
386                              <exclude>deps/**</exclude>
387                              <exclude>.fingerprint/**</exclude>
388                              <exclude>build/**</exclude>
389                              <exclude>examples/**</exclude>
390                              <exclude>**/*.d</exclude>
391                          </excludes>
392                          <!--                        <directory>${basedir}/../../rust/target/release/</directory>-->
393                          <!--                        <includes>-->
394                          <!--                            <include>liblakesoul_io_c.dylib</include>-->
395                          <!--                            <include>liblakesoul_io_c.so</include>-->
396                          <!--                            <include>lakesoul_io_c.dll</include>-->
397                          <!--                        </includes>-->
398                          <!--                        <excludes>-->
399                          <!--                            <exclude>deps</exclude>-->
400                          <!--                            <exclude>.fingerprint</exclude>-->
401                          <!--                            <exclude>build</exclude>-->
402                          <!--                            <exclude>examples</exclude>-->
403                          <!--                            <exclude>*.d</exclude>-->
404                          <!--                        </excludes>-->
405                      </resource>
406                  </resources>
407                  <plugins>
408                      <plugin>
409                          <groupId>org.codehaus.mojo</groupId>
410                          <artifactId>exec-maven-plugin</artifactId>
411                          <version>3.1.0</version>
412                          <executions>
413                              <execution>
414                                  <id>compile-native</id>
415                                  <phase>generate-resources</phase>
416                                  <goals>
417                                      <goal>exec</goal>
418                                  </goals>
419                                  <configuration>
420                                      <executable>cargo</executable>
421                                      <commandlineArgs>build --release --all-features --package lakesoul-io-c
422                                      </commandlineArgs>
423                                      <workingDirectory>${basedir}/../../rust</workingDirectory>
424                                  </configuration>
425                              </execution>
426                              <execution>
427                                  <id>clean-native</id>
428                                  <phase>clean</phase>
429                                  <goals>
430                                      <goal>exec</goal>
431                                  </goals>
432                                  <configuration>
433                                      <executable>cargo</executable>
434                                      <commandlineArgs>
435                                          clean
436                                      </commandlineArgs>
437                                      <workingDirectory>${basedir}/../../rust</workingDirectory>
438                                  </configuration>
439                              </execution>
440                          </executions>
441                      </plugin>
442                      <plugin>
443                          <groupId>org.apache.maven.plugins</groupId>
444                          <artifactId>maven-jar-plugin</artifactId>
445                          <version>3.3.0</version>
446                          <executions>
447                              <execution>
448                                  <goals>
449                                      <goal>test-jar</goal>
450                                  </goals>
451                              </execution>
452                          </executions>
453                      </plugin>
454  
455                      <plugin>
456                          <groupId>net.alchim31.maven</groupId>
457                          <artifactId>scala-maven-plugin</artifactId>
458                          <version>4.9.0</version>
459                          <executions>
460                              <execution>
461                                  <id>scala-compile-first</id>
462                                  <phase>process-resources</phase>
463                                  <goals>
464                                      <goal>add-source</goal>
465                                      <goal>compile</goal>
466                                  </goals>
467                              </execution>
468                              <execution>
469                                  <id>scala-test-compile</id>
470                                  <phase>process-test-resources</phase>
471                                  <goals>
472                                      <goal>testCompile</goal>
473                                  </goals>
474                              </execution>
475                          </executions>
476                      </plugin>
477                  </plugins>
478              </build>
479          </profile>
480  
481          <profile>
482              <id>release-linux-x86-64</id>
483              <activation>
484                  <activeByDefault>false</activeByDefault>
485              </activation>
486              <build>
487                  <resources>
488                      <resource>
489                          <directory>${basedir}/../../rust/target/x86_64-unknown-linux-gnu/release/</directory>
490                          <includes>
491                              <include>liblakesoul_io_c.so</include>
492                          </includes>
493                          <excludes>
494                              <exclude>deps</exclude>
495                              <exclude>.fingerprint</exclude>
496                              <exclude>build</exclude>
497                              <exclude>examples</exclude>
498                              <exclude>*.d</exclude>
499                          </excludes>
500                      </resource>
501                  </resources>
502                  <plugins>
503                      <plugin>
504                          <groupId>org.codehaus.mojo</groupId>
505                          <artifactId>exec-maven-plugin</artifactId>
506                          <version>3.1.0</version>
507                          <executions>
508                              <execution>
509                                  <id>compile-native</id>
510                                  <phase>generate-resources</phase>
511                                  <goals>
512                                      <goal>exec</goal>
513                                  </goals>
514                                  <configuration>
515                                      <executable>cross</executable>
516                                      <commandlineArgs>build --target x86_64-unknown-linux-gnu --release --all-features
517                                          --package lakesoul-io-c
518                                      </commandlineArgs>
519                                      <workingDirectory>${basedir}/../../rust</workingDirectory>
520                                  </configuration>
521                              </execution>
522                              <execution>
523                                  <id>clean-native</id>
524                                  <phase>clean</phase>
525                                  <goals>
526                                      <goal>exec</goal>
527                                  </goals>
528                                  <configuration>
529                                      <executable>cargo</executable>
530                                      <commandlineArgs>
531                                          clean
532                                      </commandlineArgs>
533                                      <workingDirectory>${basedir}/../../rust</workingDirectory>
534                                  </configuration>
535                              </execution>
536                          </executions>
537                      </plugin>
538                  </plugins>
539              </build>
540          </profile>
541  
542          <profile>
543              <id>cross-build</id>
544              <activation>
545                  <activeByDefault>false</activeByDefault>
546              </activation>
547              <build>
548                  <resources>
549                      <resource>
550                          <directory>${basedir}/../../rust/target/release/</directory>
551                          <includes>
552                              <include>liblakesoul_io_c.dylib</include>
553                              <include>liblakesoul_io_c.so</include>
554                              <include>lakesoul_io_c.dll</include>
555                          </includes>
556                          <excludes>
557                              <exclude>deps</exclude>
558                              <exclude>.fingerprint</exclude>
559                              <exclude>build</exclude>
560                              <exclude>examples</exclude>
561                              <exclude>*.d</exclude>
562                          </excludes>
563                      </resource>
564                  </resources>
565              </build>
566          </profile>
567          <profile>
568              <id>release-shaded</id>
569              <activation>
570                  <activeByDefault>false</activeByDefault>
571              </activation>
572              <build>
573                  <plugins>
574                      <plugin>
575                          <groupId>org.apache.maven.plugins</groupId>
576                          <artifactId>maven-shade-plugin</artifactId>
577                          <version>3.5.2</version>
578                          <executions>
579                              <execution>
580                                  <phase>package</phase>
581                                  <goals>
582                                      <goal>shade</goal>
583                                  </goals>
584                              </execution>
585                          </executions>
586                          <configuration>
587                              <shadedArtifactAttached>true</shadedArtifactAttached>
588                              <shadedClassifierName>shaded</shadedClassifierName>
589                              <createDependencyReducedPom>false</createDependencyReducedPom>
590                              <artifactSet>
591                                  <includes>
592                                      <include>**</include>
593                                  </includes>
594                                  <excludes>
595                                      <exclude>org.apache.spark:*</exclude>
596                                  </excludes>
597                              </artifactSet>
598                              <filters>
599                                  <filter>
600                                      <artifact>*:*</artifact>
601                                      <excludes>
602                                          <exclude>META-INF/*.SF</exclude>
603                                          <exclude>META-INF/*.DSA</exclude>
604                                          <exclude>META-INF/*.RSA</exclude>
605                                          <exclude>META-INF/versions/**</exclude>
606                                      </excludes>
607                                  </filter>
608                                  <filter>
609                                      <artifact>org.apache.spark:spark-core_2.12</artifact>
610                                      <excludes>
611                                          <exclude>org/sparkproject/jetty/**</exclude>
612                                          <exclude>META-INF/maven/org.eclipse.jetty/**</exclude>
613                                          <exclude>META-INF/maven/org.spark-project.spark/**</exclude>
614                                          <exclude>jetty-dir.css</exclude>
615                                          <exclude>META-INF/services/org.eclipse.jetty.http.HttpFieldPreEncoder</exclude>
616                                      </excludes>
617                                  </filter>
618                              </filters>
619                              <relocations>
620                                  <relocation>
621                                      <pattern>scala.</pattern>
622                                      <shadedPattern>com.lakesoul.shaded.scala.</shadedPattern>
623                                  </relocation>
624                                  <relocation>
625                                      <pattern>com.zaxxer.hikari</pattern>
626                                      <shadedPattern>com.lakesoul.shaded.com.zaxxer.hikari</shadedPattern>
627                                  </relocation>
628                                  <relocation>
629                                      <pattern>org.postgresql</pattern>
630                                      <shadedPattern>com.lakesoul.shaded.org.postgresql</shadedPattern>
631                                  </relocation>
632                                  <relocation>
633                                      <pattern>org.ow2.asm</pattern>
634                                      <shadedPattern>com.lakesoul.shaded.org.ow2.asm</shadedPattern>
635                                  </relocation>
636                                  <relocation>
637                                      <pattern>org.objectweb.asm</pattern>
638                                      <shadedPattern>com.lakesoul.shaded.org.objectweb.asm</shadedPattern>
639                                  </relocation>
640                                  <relocation>
641                                      <pattern>com.google.flatbuffers</pattern>
642                                      <shadedPattern>com.lakesoul.shaded.com.google.flatbuffers</shadedPattern>
643                                  </relocation>
644                                  <relocation>
645                                      <pattern>org.apache.arrow</pattern>
646                                      <shadedPattern>com.lakesoul.shaded.org.apache.arrow</shadedPattern>
647                                      <excludes>
648                                          <exclude>org.apache.arrow.c.jni.*</exclude>
649                                          <exclude>org.apache.arrow.c.Data*</exclude>
650                                          <exclude>org.apache.arrow.c.Format*</exclude>
651                                          <exclude>org.apache.arrow.c.Flags*</exclude>
652                                          <exclude>org.apache.arrow.c.Metadata*</exclude>
653                                          <exclude>org.apache.arrow.c.NativeUtil*</exclude>
654                                          <exclude>org.apache.arrow.c.ReferenceCountedArrowArray*</exclude>
655                                          <exclude>org.apache.arrow.c.ArrowArrayStreamReader*</exclude>
656                                          <exclude>org.apache.arrow.c.ArrayStreamExporter*</exclude>
657                                          <exclude>org.apache.arrow.c.ArrayExporter*</exclude>
658                                          <exclude>org.apache.arrow.c.ArrayImporter*</exclude>
659                                          <exclude>org.apache.arrow.c.BufferImportTypeVisitor*</exclude>
660                                          <exclude>org.apache.arrow.c.SchemaExporter*</exclude>
661                                          <exclude>org.apache.arrow.c.SchemaImporter*</exclude>
662                                      </excludes>
663                                  </relocation>
664                                  <relocation>
665                                      <pattern>com.google.protobuf</pattern>
666                                      <shadedPattern>com.lakesoul.shaded.com.google.protobuf</shadedPattern>
667                                  </relocation>
668                                  <relocation>
669                                      <pattern>com.fasterxml.jackson</pattern>
670                                      <shadedPattern>com.lakesoul.shaded.com.fasterxml.jackson</shadedPattern>
671                                  </relocation>
672                                  <relocation>
673                                      <pattern>org.json4s</pattern>
674                                      <shadedPattern>com.lakesoul.shaded.org.json4s</shadedPattern>
675                                  </relocation>
676                                  <relocation>
677                                      <pattern>org.apache.commons</pattern>
678                                      <shadedPattern>com.lakesoul.shaded.org.apache.commons</shadedPattern>
679                                  </relocation>
680                                  <relocation>
681                                      <pattern>dev.failsafe</pattern>
682                                      <shadedPattern>com.lakesoul.shaded.dev.failsafe</shadedPattern>
683                                  </relocation>
684                                  <relocation>
685                                      <pattern>org.aspectj</pattern>
686                                      <shadedPattern>com.lakesoul.shaded.org.aspectj</shadedPattern>
687                                  </relocation>
688                                  <relocation>
689                                      <pattern>org.checkerframework</pattern>
690                                      <shadedPattern>com.lakesoul.shaded.org.checkerframework</shadedPattern>
691                                  </relocation>
692                                  <relocation>
693                                      <pattern>org.yaml.snakeyaml</pattern>
694                                      <shadedPattern>com.lakesoul.shaded.org.yaml.snakeyaml</shadedPattern>
695                                  </relocation>
696                                  <relocation>
697                                      <pattern>org.antlr</pattern>
698                                      <shadedPattern>com.lakesoul.shaded.org.antlr</shadedPattern>
699                                  </relocation>
700                                  <relocation>
701                                      <pattern>io.netty</pattern>
702                                      <shadedPattern>com.lakesoul.shaded.io.netty</shadedPattern>
703                                  </relocation>
704                                  <relocation>
705                                      <pattern>com.alibaba.fastjson</pattern>
706                                      <shadedPattern>com.lakesoul.shaded.com.alibaba.fastjson</shadedPattern>
707                                  </relocation>
708                                  <relocation>
709                                      <pattern>com.google.flatbuffers</pattern>
710                                      <shadedPattern>com.lakesoul.shaded.com.google.flatbuffers</shadedPattern>
711                                  </relocation>
712                                  <relocation>
713                                      <pattern>io.substrait</pattern>
714                                      <shadedPattern>com.lakesoul.shaded.io.substrait</shadedPattern>
715                                  </relocation>
716                                  <relocation>
717                                      <pattern>org.stringtemplate</pattern>
718                                      <shadedPattern>com.lakesoul.shaded.org.stringtemplate</shadedPattern>
719                                  </relocation>
720                                  <relocation>
721                                      <pattern>org.abego</pattern>
722                                      <shadedPattern>com.lakesoul.shaded.org.abego</shadedPattern>
723                                  </relocation>
724                              </relocations>
725                          </configuration>
726                      </plugin>
727                  </plugins>
728              </build>
729          </profile>
730      </profiles>
731  
732      <build>
733          <extensions>
734              <extension>
735                  <groupId>kr.motd.maven</groupId>
736                  <artifactId>os-maven-plugin</artifactId>
737                  <version>1.7.0</version>
738              </extension>
739          </extensions>
740          <plugins>
741              <plugin>
742                  <groupId>org.apache.maven.plugins</groupId>
743                  <artifactId>maven-resources-plugin</artifactId>
744                  <version>2.4</version>
745                  <configuration>
746                      <encoding>UTF-8</encoding>
747                  </configuration>
748              </plugin>
749              <plugin>
750                  <groupId>org.apache.maven.plugins</groupId>
751                  <artifactId>maven-surefire-plugin</artifactId>
752                  <version>3.1.0</version>
753                  <configuration>
754                      <skip>true</skip>
755                  </configuration>
756              </plugin>
757              <plugin>
758                  <groupId>net.alchim31.maven</groupId>
759                  <artifactId>scala-maven-plugin</artifactId>
760                  <version>4.9.0</version>
761                  <executions>
762                      <execution>
763                          <id>scala-compile-first</id>
764                          <phase>process-resources</phase>
765                          <goals>
766                              <goal>add-source</goal>
767                              <goal>compile</goal>
768                          </goals>
769                      </execution>
770                      <execution>
771                          <id>scala-test-compile</id>
772                          <phase>process-test-resources</phase>
773                          <goals>
774                              <goal>testCompile</goal>
775                          </goals>
776                      </execution>
777                  </executions>
778                  <configuration>
779                      <compileOrder>Mixed</compileOrder>
780                  </configuration>
781              </plugin>
782              <plugin>
783                  <groupId>org.apache.maven.plugins</groupId>
784                  <artifactId>maven-compiler-plugin</artifactId>
785                  <version>3.13.0</version>
786                  <executions>
787                      <execution>
788                          <phase>compile</phase>
789                          <goals>
790                              <goal>compile</goal>
791                          </goals>
792                      </execution>
793                  </executions>
794              </plugin>
795              <plugin>
796                  <groupId>org.codehaus.mojo</groupId>
797                  <artifactId>flatten-maven-plugin</artifactId>
798                  <version>1.6.0</version>
799                  <configuration>
800                      <flattenMode>ossrh</flattenMode>
801                  </configuration>
802                  <executions>
803                      <!-- enable flattening -->
804                      <execution>
805                          <id>flatten</id>
806                          <phase>process-resources</phase>
807                          <goals>
808                              <goal>flatten</goal>
809                          </goals>
810                      </execution>
811                      <!-- ensure proper cleanup -->
812                      <execution>
813                          <id>flatten.clean</id>
814                          <phase>clean</phase>
815                          <goals>
816                              <goal>clean</goal>
817                          </goals>
818                      </execution>
819                  </executions>
820              </plugin>
821          </plugins>
822      </build>
823  </project>