github.com/treeverse/lakefs@v1.24.1-0.20240520134607-95648127bfb0/clients/hadoopfs/pom.xml (about)

     1  <?xml version="1.0" encoding="UTF-8"?>
     2  <!--
     3  Can build a JAR and an assembled JAR.  The first is useful for programming a larger
     4  component, and will most likely require assembly and shading to use.  The second is
     5  useful for inserting directly into Spark.
     6  
     7  To publish to Maven Central:
     8      mvn deploy
     9      mvn -Passembly deploy
    10  
    11  To export to S3:
    12      mvn package s3-storage-wagon:s3-upload@upload-jar
    13      mvn -Passembly package s3-storage-wagon:s3-upload@upload-jar
    14  -->
    15  <project xmlns="http://maven.apache.org/POM/4.0.0"
    16           xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    17           xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    18      <modelVersion>4.0.0</modelVersion>
    19      <groupId>io.lakefs</groupId>
    20      <artifactId>hadoop-lakefs${name-suffix}</artifactId>
    21      <packaging>jar</packaging>
    22      <name>hadoop-lakefs${name-suffix}</name>
    23      <version>0.1.0</version><!--MARKER: keep this comment here, we update the version with the lakeFS version when on deploy-->
    24      <url>https://lakefs.io</url>
    25      <scm>
    26          <connection>scm:git:git@github.com:treeverse/lakeFS.git</connection>
    27          <developerConnection>scm:git:git@github.com:treeverse/lakeFS.git</developerConnection>
    28          <url>https://github.com/treeverse/lakeFS</url>
    29      </scm>
    30      <parent>
    31          <groupId>io.lakefs</groupId>
    32          <artifactId>lakefs-parent</artifactId>
    33          <version>0</version>
    34      </parent>
    35  
    36      <licenses>
    37          <license>
    38              <name>apache2</name>
    39              <url>http://www.apache.org/licenses/</url>
    40              <distribution>repo</distribution>
    41          </license>
    42      </licenses>
    43  
    44      <developers>
    45          <developer>
    46              <name>Treeverse lakeFS dev</name>
    47              <email>services@treeverse.io</email>
    48              <organization>lakefs.io</organization>
    49              <organizationUrl>https://lakefs.io</organizationUrl>
    50          </developer>
    51      </developers>
    52  
    53      <profiles>
    54          <profile>
    55              <id>contract-tests-hadoop2</id>
    56              <properties>
    57                  <exclude.tests>io/lakefs/contract/hadoop3/**</exclude.tests>
    58                  <contract_tests.resource_dir>../../test/lakefsfs_contract/</contract_tests.resource_dir>
    59                  <hadoop.version>2.7.7</hadoop.version>
    60              </properties>
    61              <build>
    62                  <resources>
    63                      <resource>
    64                          <directory>${contract_tests.resource_dir}</directory>
    65                      </resource>
    66                  </resources>
    67              </build>
    68          </profile>
    69          <profile>
    70              <id>contract-tests-hadoop3</id>
    71              <properties>
    72                  <exclude.tests>io/lakefs/contract/hadoop2/**</exclude.tests>
    73                  <contract_tests.resource_dir>../../test/lakefsfs_contract/</contract_tests.resource_dir>
    74                  <hadoop.version>3.1.4</hadoop.version>
    75              </properties>
    76              <build>
    77                  <resources>
    78                      <resource>
    79                          <directory>${contract_tests.resource_dir}</directory>
    80                      </resource>
    81                  </resources>
    82              </build>
    83          </profile>
    84          <profile>
    85              <id>contract-tests-hadoop3-presigned</id>
    86              <properties>
    87                  <exclude.tests>io/lakefs/contract/hadoop2/**</exclude.tests>
    88                  <contract_tests.resource_dir>../../test/lakefsfs_contract/</contract_tests.resource_dir>
    89                  <hadoop.version>3.1.4</hadoop.version>
    90              </properties>
    91              <build>
    92                  <plugins>
    93                      <plugin>
    94                          <groupId>org.apache.maven.plugins</groupId>
    95                          <artifactId>maven-surefire-plugin</artifactId>
    96                          <version>3.1.2</version>
    97                          <configuration>
    98                              <systemPropertyVariables>
    99                                  <lakefs.access_mode>presigned</lakefs.access_mode>
   100                              </systemPropertyVariables>
   101                          </configuration>
   102                      </plugin>
   103                  </plugins>
   104                  <resources>
   105                      <resource>
   106                          <directory>${contract_tests.resource_dir}</directory>
   107                      </resource>
   108                  </resources>
   109              </build>
   110          </profile>
   111          <profile>
   112              <id>release</id>
   113              <build>
   114                  <plugins>
   115                      <plugin>
   116                          <groupId>org.apache.maven.plugins</groupId>
   117                          <artifactId>maven-source-plugin</artifactId>
   118                          <version>2.2.1</version>
   119                          <executions>
   120                              <execution>
   121                                  <id>attach-sources</id>
   122                                  <goals>
   123                                      <goal>jar-no-fork</goal>
   124                                  </goals>
   125                              </execution>
   126                          </executions>
   127                      </plugin>
   128                      <plugin>
   129                          <groupId>org.apache.maven.plugins</groupId>
   130                          <artifactId>maven-javadoc-plugin</artifactId>
   131                          <version>3.3.1</version>
   132                          <executions>
   133                              <execution>
   134                                  <id>attach-javadocs</id>
   135                                  <goals>
   136                                      <goal>jar</goal>
   137                                  </goals>
   138                                  <configuration>
   139                                      <source>1.8</source>
   140                                      <doclint>none</doclint>
   141                                  </configuration>
   142                              </execution>
   143                          </executions>
   144                      </plugin>
   145                  </plugins>
   146              </build>
   147          </profile>
   148          <profile>
   149              <id>assembly</id>
   150              <build>
   151                  <plugins>
   152                      <plugin>
   153                          <groupId>org.apache.maven.plugins</groupId>
   154                          <artifactId>maven-shade-plugin</artifactId>
   155                          <version>3.4.1</version>
   156                          <executions>
   157                              <execution>
   158                                  <phase>package</phase>
   159                                  <goals>
   160                                      <goal>shade</goal>
   161                                  </goals>
   162                                  <configuration>
   163                                      <filters>
   164                                          <filter>
   165                                              <artifact>*:*</artifact>
   166                                              <excludes>
   167                                                  <exclude>module-info.class</exclude>
   168                                                  <exclude>META-INF/maven/**</exclude>
   169                                                  <exclude>META-INF/*.SF</exclude>
   170                                                  <exclude>META-INF/*.DSA</exclude>
   171                                                  <exclude>META-INF/*.RSA</exclude>
   172                                              </excludes>
   173                                          </filter>
   174                                      </filters>
   175                                      <relocations>
   176                                          <relocation>
   177                                              <pattern>org.apache.httpcomponents</pattern>
   178                                              <shadedPattern>io.lakefs.hadoopfs.shade.org.apache.httpcomponents</shadedPattern>
   179                                          </relocation>
   180                                          <relocation>
   181                                              <pattern>okio</pattern>
   182                                              <shadedPattern>io.lakefs.hadoopfs.shade.okio</shadedPattern>
   183                                          </relocation>
   184                                          <relocation>
   185                                              <pattern>okhttp3</pattern>
   186                                              <shadedPattern>io.lakefs.hadoop.shade.okhttp3</shadedPattern>
   187                                          </relocation>
   188                                          <relocation>
   189                                              <pattern>com.google.gson</pattern>
   190                                              <shadedPattern>io.lakefs.hadoop.shade.gson</shadedPattern>
   191                                          </relocation>
   192                                          <relocation>
   193                                              <pattern>io.gsonfire</pattern>
   194                                              <shadedPattern>io.lakefs.hadoop.shade.gsonfire</shadedPattern>
   195                                          </relocation>
   196                                          <relocation>
   197                                              <pattern>io.lakefs.clients.sdk</pattern>
   198                                              <shadedPattern>io.lakefs.hadoop.shade.sdk</shadedPattern>
   199                                          </relocation>
   200                                      </relocations>
   201                                      <transformers>
   202                                          <transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
   203                                              <manifestEntries>
   204                                                  <Implementation-Version>${project.version}</Implementation-Version>
   205                                              </manifestEntries>
   206                                          </transformer>
   207                                      </transformers>
   208                                  </configuration>
   209                              </execution>
   210                          </executions>
   211                      </plugin>
   212                  </plugins>
   213              </build>
   214              <properties>
   215                  <name-suffix>-assembly</name-suffix>
   216              </properties>
   217          </profile>
   218      </profiles>
   219  
   220      <properties>
   221          <exclude.tests>io/lakefs/contract/**</exclude.tests>
   222  
   223          <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
   224          <name-suffix/>          <!-- Set via profile to rename JAR -->
   225          <hadoop.version>2.7.7</hadoop.version>
   226          <finalName>${project.artifactId}-${project.version}</finalName>
   227      </properties>
   228      <build>
   229          <finalName>${finalName}</finalName>
   230          <plugins>
   231              <plugin>
   232                  <groupId>org.apache.maven.plugins</groupId>
   233                  <artifactId>maven-surefire-plugin</artifactId>
   234                  <version>3.1.2</version>
   235                  <configuration>
   236                      <excludes>
   237                          <exclude>${exclude.tests}</exclude>
   238                      </excludes>
   239                  </configuration>
   240              </plugin>
   241              <plugin>
   242                  <groupId>org.apache.maven.plugins</groupId>
   243                  <artifactId>maven-compiler-plugin</artifactId>
   244                  <version>3.8.1</version>
   245                  <configuration>
   246                      <source>1.8</source>
   247                      <target>1.8</target>
   248                      <testExcludes>
   249                          <testExclude>${exclude.tests}</testExclude>
   250                      </testExcludes>
   251                  </configuration>
   252              </plugin>
   253              <plugin>
   254                  <groupId>org.apache.maven.plugins</groupId>
   255                  <artifactId>maven-jar-plugin</artifactId>
   256                  <version>2.4</version>
   257                  <executions>
   258                      <execution>
   259                          <goals>
   260                              <goal>test-jar</goal>
   261                          </goals>
   262                      </execution>
   263                  </executions>
   264              </plugin>
   265              <plugin>
   266                  <groupId>com.gkatzioura.maven.cloud</groupId>
   267                  <artifactId>s3-storage-wagon</artifactId>
   268                  <version>2.3</version>
   269                  <executions>
   270                      <execution>
   271                          <id>upload-jar</id>
   272                          <goals>
   273                              <goal>s3-upload</goal>
   274                          </goals>
   275                          <configuration>
   276                              <path>target/${project.artifactId}-${project.version}.jar</path>
   277                              <bucket>treeverse-clients-us-east</bucket>
   278                              <region>us-east-1</region>
   279                              <key>hadoop/${project.artifactId}-${project.version}.jar</key>
   280                          </configuration>
   281                      </execution>
   282                  </executions>
   283              </plugin>
   284          </plugins>
   285      </build>
   286      <dependencies>
   287          <dependency>
   288              <groupId>io.lakefs</groupId>
   289              <artifactId>sdk</artifactId>
   290              <version>1.18.0</version>
   291          </dependency>
   292          <dependency>
   293              <groupId>org.apache.commons</groupId>
   294              <artifactId>commons-lang3</artifactId>
   295              <version>3.12.0</version>
   296          </dependency>
   297          <dependency>
   298              <groupId>org.apache.hadoop</groupId>
   299              <artifactId>hadoop-common</artifactId>
   300              <version>${hadoop.version}</version>
   301              <scope>provided</scope>
   302          </dependency>
   303          <dependency>
   304              <groupId>org.apache.hadoop</groupId>
   305              <artifactId>hadoop-common</artifactId>
   306              <scope>test</scope>
   307              <type>test-jar</type>
   308              <version>${hadoop.version}</version>
   309          </dependency>
   310          <dependency>
   311              <groupId>org.apache.hadoop</groupId>
   312              <artifactId>hadoop-aws</artifactId>
   313              <version>${hadoop.version}</version>
   314              <scope>provided</scope>
   315          </dependency>
   316          <!-- https://mvnrepository.com/artifact/org.apache.commons/commons-lang3 -->
   317          <dependency>
   318              <groupId>org.apache.commons</groupId>
   319              <artifactId>commons-lang3</artifactId>
   320              <version>3.12.0</version>
   321          </dependency>
   322          <dependency>
   323              <groupId>javax.xml.bind</groupId>
   324              <artifactId>jaxb-api</artifactId>
   325              <version>2.3.1</version>
   326          </dependency>
   327          <dependency>        <!-- needed for aws-java-sdk in tests(!) -->
   328              <groupId>org.apache.httpcomponents</groupId>
   329              <artifactId>httpclient</artifactId>
   330              <version>4.5.13</version>
   331          </dependency>
   332  
   333          <dependency>
   334              <groupId>junit</groupId>
   335              <artifactId>junit</artifactId>
   336              <version>4.13.1</version>
   337              <scope>test</scope>
   338          </dependency>
   339  
   340          <dependency>
   341              <groupId>com.aventrix.jnanoid</groupId>
   342              <artifactId>jnanoid</artifactId>
   343              <version>2.0.0</version>
   344              <scope>test</scope>
   345          </dependency>
   346          <dependency>
   347            <groupId>org.testcontainers</groupId>
   348            <artifactId>testcontainers</artifactId>
   349            <version>1.16.3</version>
   350            <scope>test</scope>
   351          </dependency>
   352          <!-- https://mvnrepository.com/artifact/com.squareup.okhttp3/mockwebserver -->
   353          <dependency>
   354              <groupId>com.squareup.okhttp3</groupId>
   355              <artifactId>mockwebserver</artifactId>
   356              <version>4.10.0</version>
   357              <scope>test</scope>
   358          </dependency>
   359  
   360  	    <!--
   361  	     https://stackoverflow.com/questions/35569092/java-lang-classnotfoundexception-com-fasterxml-jackson-annotation-jsonincludev
   362  	     says to keep all of these on the same versions -->
   363          <dependency>
   364            <groupId>com.fasterxml.jackson.core</groupId>
   365            <artifactId>jackson-databind</artifactId>
   366            <version>2.13.4.2</version>
   367            <scope>test</scope>
   368          </dependency>
   369          <dependency>
   370            <groupId>com.fasterxml.jackson.core</groupId>
   371            <artifactId>jackson-core</artifactId>
   372            <version>2.12.3</version>
   373            <scope>test</scope>
   374          </dependency>
   375          <dependency>
   376            <groupId>com.fasterxml.jackson.core</groupId>
   377            <artifactId>jackson-annotations</artifactId>
   378            <version>2.12.3</version>
   379            <scope>test</scope>
   380          </dependency>
   381  
   382          <dependency>
   383              <groupId>org.mock-server</groupId>
   384              <artifactId>mockserver-junit-rule-no-dependencies</artifactId>
   385              <version>5.14.0</version>
   386              <scope>test</scope>
   387          </dependency>
   388          <dependency>
   389              <groupId>org.mock-server</groupId>
   390              <artifactId>mockserver-core</artifactId>
   391              <version>5.15.0</version>
   392              <scope>test</scope>
   393          </dependency>
   394          <dependency>
   395              <groupId>org.immutables</groupId>
   396              <artifactId>value</artifactId>
   397              <version>2.9.3</version>
   398              <scope>test</scope>
   399          </dependency>
   400          <dependency>
   401              <groupId>com.google.guava</groupId>
   402              <artifactId>guava</artifactId>
   403              <version>32.1.2-jre</version>
   404              <scope>test</scope>
   405          </dependency>
   406      </dependencies>
   407  </project>