azure-storage-blob
Used in:
components
- OverviewOverview
- VersionsVersions
- DependentsDependents
- DependenciesDependencies
<dependency>
<groupId>com.azure</groupId>
<artifactId>azure-storage-blob</artifactId>
<version>12.36.0-beta.1</version>
</dependency><?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<parent>
<groupId>com.azure</groupId>
<artifactId>azure-client-sdk-parent</artifactId>
<version>1.7.0</version> <!-- {x-version-update;com.azure:azure-client-sdk-parent;current} -->
<relativePath>../../parents/azure-client-sdk-parent</relativePath>
</parent>
<modelVersion>4.0.0</modelVersion>
<groupId>com.azure</groupId>
<artifactId>azure-storage-blob</artifactId>
<version>12.36.0-beta.1</version> <!-- {x-version-update;com.azure:azure-storage-blob;current} -->
<name>Microsoft Azure client library for Blob Storage</name>
<description>This module contains client library for Microsoft Azure Blob Storage.</description>
<url>https://github.com/Azure/azure-sdk-for-java</url>
<distributionManagement>
<site>
<id>azure-java-build-docs</id>
<url>${site.url}/site/${project.artifactId}</url>
</site>
</distributionManagement>
<scm>
<url>scm:git:https://github.com/Azure/azure-sdk-for-java</url>
<connection>scm:git:git@github.com:Azure/azure-sdk-for-java.git</connection>
<tag>HEAD</tag>
</scm>
<properties>
<AZURE_TEST_SYSTEM_PLAYBACK_PROPERTIES_FILE>../azure-storage-common/ci.system.properties</AZURE_TEST_SYSTEM_PLAYBACK_PROPERTIES_FILE>
<surefireXmx>8g</surefireXmx>
<!-- Configures the Java 9+ run to perform the required module exports, opens, and reads that are necessary for testing but shouldn't be part of the module-info. -->
<javaModulesSurefireArgLine>
--add-exports com.azure.core/com.azure.core.implementation.http=ALL-UNNAMED
--add-exports com.azure.core/com.azure.core.implementation.serializer.jackson=ALL-UNNAMED
--add-opens com.azure.storage.common/com.azure.storage.common.implementation=ALL-UNNAMED
--add-opens com.azure.storage.common/com.azure.storage.common.sas=ALL-UNNAMED
--add-opens com.azure.storage.blob/com.azure.storage.blob=ALL-UNNAMED
--add-opens com.azure.storage.blob/com.azure.storage.blob.implementation=ALL-UNNAMED
--add-opens com.azure.storage.blob/com.azure.storage.blob.implementation.util=ALL-UNNAMED
--add-opens com.azure.storage.blob/com.azure.storage.blob.specialized=ALL-UNNAMED
--add-opens com.azure.storage.blob/com.azure.storage.blob.changefeed=ALL-UNNAMED
--add-opens com.azure.storage.blob/com.azure.storage.blob.implementation.models=ALL-UNNAMED
--add-reads com.azure.core=ALL-UNNAMED
--add-reads com.azure.core.test=ALL-UNNAMED
--add-reads com.azure.core.amqp=ALL-UNNAMED
--add-reads com.azure.storage.common=ALL-UNNAMED
--add-reads com.azure.storage.internal.avro=ALL-UNNAMED
--add-reads com.azure.storage.blob=com.azure.http.netty
--add-reads com.azure.storage.blob=com.azure.core.http.okhttp
--add-reads com.azure.storage.blob=com.azure.core.http.jdk.httpclient
--add-reads com.azure.storage.blob=com.azure.core.http.vertx
</javaModulesSurefireArgLine>
<parallelizeLiveTests>concurrent</parallelizeLiveTests>
<!-- Exclude vendored Apache Arrow and FlatBuffers code from linting checks. -->
<checkstyle.excludes>**/implementation/util/apachearrow/**/*.java,**/implementation/util/flatbuffers/**/*.java</checkstyle.excludes>
<spotbugs.excludes>**/implementation/util/apachearrow/**/*.java,**/implementation/util/flatbuffers/**/*.java</spotbugs.excludes>
<spotbugs.skip>false</spotbugs.skip>
</properties>
<dependencies>
<dependency>
<groupId>com.azure</groupId>
<artifactId>azure-xml</artifactId>
<version>1.2.1</version> <!-- {x-version-update;com.azure:azure-xml;dependency} -->
</dependency>
<dependency>
<groupId>com.azure</groupId>
<artifactId>azure-core</artifactId>
<version>1.58.1</version> <!-- {x-version-update;com.azure:azure-core;dependency} -->
</dependency>
<dependency>
<groupId>com.azure</groupId>
<artifactId>azure-core-http-netty</artifactId>
<version>1.16.5</version> <!-- {x-version-update;com.azure:azure-core-http-netty;dependency} -->
</dependency>
<dependency>
<groupId>com.azure</groupId>
<artifactId>azure-storage-common</artifactId>
<version>12.35.0-beta.1</version> <!-- {x-version-update;com.azure:azure-storage-common;current} -->
</dependency>
<dependency>
<groupId>com.azure</groupId>
<artifactId>azure-storage-internal-avro</artifactId>
<version>12.21.0-beta.1</version> <!-- {x-version-update;com.azure:azure-storage-internal-avro;current} -->
</dependency>
<!-- Added this dependency to include necessary annotations used by reactor core.
Without this dependency, javadoc throws a warning as it cannot find enum When.MAYBE
which is used in @Nullable annotation in reactor core classes -->
<dependency>
<groupId>com.google.code.findbugs</groupId>
<artifactId>jsr305</artifactId>
<version>3.0.2</version> <!-- {x-version-update;com.google.code.findbugs:jsr305;external_dependency} -->
<scope>provided</scope>
</dependency>
<dependency>
<groupId>com.azure</groupId>
<artifactId>azure-storage-common</artifactId>
<version>12.35.0-beta.1</version> <!-- {x-version-update;com.azure:azure-storage-common;current} -->
<classifier>tests</classifier>
<type>test-jar</type>
<scope>test</scope>
</dependency>
<dependency>
<groupId>com.azure</groupId>
<artifactId>azure-core-test</artifactId>
<version>1.27.0-beta.16</version> <!-- {x-version-update;com.azure:azure-core-test;dependency} -->
<scope>test</scope>
</dependency>
<dependency>
<groupId>com.azure</groupId>
<artifactId>azure-identity</artifactId>
<version>1.18.4</version> <!-- {x-version-update;com.azure:azure-identity;dependency} -->
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.mockito</groupId>
<artifactId>mockito-core</artifactId>
<version>4.11.0</version> <!-- {x-version-update;org.mockito:mockito-core;external_dependency} -->
<scope>test</scope>
</dependency>
<!-- bytebuddy dependencies are required for mockito 4.11.0 to work with Java 21. Mockito 4.11.0 is the last release -->
<!-- of Mockito supporting Java 8 as a baseline. -->
<dependency>
<groupId>net.bytebuddy</groupId>
<artifactId>byte-buddy</artifactId>
<version>1.17.7</version> <!-- {x-version-update;testdep_net.bytebuddy:byte-buddy;external_dependency} -->
<scope>test</scope>
</dependency>
<dependency>
<groupId>net.bytebuddy</groupId>
<artifactId>byte-buddy-agent</artifactId>
<version>1.17.7</version> <!-- {x-version-update;testdep_net.bytebuddy:byte-buddy-agent;external_dependency} -->
<scope>test</scope>
</dependency>
<!-- The internal ListBlobs Arrow reader uses vendored Arrow metadata accessors and the minimal FlatBuffers runtime
sources required by those accessors. The arrow-format artifact ships Java 11 bytecode, while this library has a
Java 8 baseline. Keeping both source sets internal also avoids modifying the release JAR through shading, which
would remove its explicit Java module descriptor.
When the Java 8 baseline is retired, additional options become available:
- The add-reads compiler option may provide compile-time access to an unnamed implementation dependency.
- A post-shade descriptor tool could rebuild module-info.class.
- A multi-release JAR or separate internal Azure module could isolate the dependency.
These options are not automatic replacements for vendoring. In particular, add-reads does not repair the
explicit descriptor removed by shading. Any future packaging approach must preserve Blob's module-info.class
and transitive Java module dependency graph, and must be validated by compiling installed downstream modules. -->
</dependencies>
<profiles>
<profile>
<id>inject-sas-service-version</id>
<activation>
<property>
<name>env.AZURE_LIVE_TEST_SERVICE_VERSION</name>
</property>
</activation>
<build>
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>build-helper-maven-plugin</artifactId>
<version>3.6.1</version> <!-- {x-version-update;org.codehaus.mojo:build-helper-maven-plugin;external_dependency} -->
<executions>
<execution>
<id>regex-property</id>
<goals>
<goal>regex-property</goal>
</goals>
<configuration>
<name>AZURE_STORAGE_SAS_SERVICE_VERSION</name>
<value>${env.AZURE_LIVE_TEST_SERVICE_VERSION}</value>
<regex>V(\d+)_(\d+)_(\d+)</regex>
<replacement>$1-$2-$3</replacement>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>3.5.3</version> <!-- {x-version-update;org.apache.maven.plugins:maven-surefire-plugin;external_dependency} -->
<configuration>
<systemPropertyVariables>
<AZURE_STORAGE_SAS_SERVICE_VERSION>${AZURE_STORAGE_SAS_SERVICE_VERSION}</AZURE_STORAGE_SAS_SERVICE_VERSION>
</systemPropertyVariables>
</configuration>
</plugin>
</plugins>
</build>
</profile>
<!-- This profile generates a sources JAR with Arrow and its matching FlatBuffers runtime relocated into the
internal packages where their curated source subsets are vendored. -->
<!-- DO NOT run this profile with release. It is only a local source-refresh tool and must never rewrite the
shipping azure-storage-blob JAR. -->
<!-- -->
<!-- To update the vendored sources, run Maven with '-Dshade-apache-arrow-format', extract the attached sources
JAR, and review the relocated apachearrow and flatbuffers packages. Copy only the source files used by the
internal reader, preserve their notices, and rerun the Arrow fixture and installed-consumer checks. -->
<profile>
<id>shade-apache-arrow-format</id>
<activation>
<property>
<name>shade-apache-arrow-format</name>
</property>
</activation>
<dependencies>
<dependency>
<groupId>org.apache.arrow</groupId>
<artifactId>arrow-format</artifactId>
<version>19.0.0</version> <!-- {x-version-update;org.apache.arrow:arrow-format;external_dependency} -->
</dependency>
<!-- Must match arrow-format's dep.fbs.version. dependencyConvergence below rejects version drift. -->
<dependency>
<groupId>com.google.flatbuffers</groupId>
<artifactId>flatbuffers-java</artifactId>
<version>25.2.10</version> <!-- {x-version-update;com.google.flatbuffers:flatbuffers-java;external_dependency} -->
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<version>3.6.0</version> <!-- {x-version-update;org.apache.maven.plugins:maven-shade-plugin;external_dependency} -->
<executions>
<execution>
<id>shade</id>
<phase>package</phase>
<goals>
<goal>shade</goal>
</goals>
</execution>
</executions>
<configuration>
<createSourcesJar>true</createSourcesJar>
<shadeSourcesContent>true</shadeSourcesContent>
<shadedArtifactAttached>true</shadedArtifactAttached>
<shadedClassifierName>shade-apache-arrow-format</shadedClassifierName>
<createDependencyReducedPom>false</createDependencyReducedPom>
<artifactSet>
<includes>
<include>org.apache.arrow:arrow-format</include> <!-- {x-include-update;org.apache.arrow:arrow-format;external_dependency} -->
<include>com.google.flatbuffers:flatbuffers-java</include> <!-- {x-include-update;com.google.flatbuffers:flatbuffers-java;external_dependency} -->
</includes>
</artifactSet>
<relocations>
<relocation>
<pattern>org.apache.arrow.flatbuf</pattern>
<shadedPattern>com.azure.storage.blob.implementation.util.apachearrow</shadedPattern>
</relocation>
<relocation>
<pattern>com.google.flatbuffers</pattern>
<shadedPattern>com.azure.storage.blob.implementation.util.flatbuffers</shadedPattern>
</relocation>
</relocations>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-enforcer-plugin</artifactId>
<version>3.6.1</version> <!-- {x-version-update;org.apache.maven.plugins:maven-enforcer-plugin;external_dependency} -->
<configuration>
<rules>
<dependencyConvergence>
<includes>
<include>com.google.flatbuffers:flatbuffers-java</include>
</includes>
</dependencyConvergence>
<bannedDependencies>
<includes>
<include>org.apache.arrow:arrow-format:[19.0.0]</include> <!-- {x-include-update;org.apache.arrow:arrow-format;external_dependency} -->
<include>com.google.flatbuffers:flatbuffers-java:[25.2.10]</include> <!-- {x-include-update;com.google.flatbuffers:flatbuffers-java;external_dependency} -->
</includes>
</bannedDependencies>
</rules>
</configuration>
</plugin>
</plugins>
</build>
</profile>
</profiles>
</project>