<!-- ~ Copyright 2023-2024 the original author or authors. ~ ~ Licensed under the Apache License, Version 2.0 (the "License"); ~ you may not use this file except in compliance with the License. ~ You may obtain a copy of the License at ~ ~ https://www.apache.org/licenses/LICENSE-2.0 ~ ~ Unless required by applicable law or agreed to in writing, software ~ distributed under the License is distributed on an "AS IS" BASIS, ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. ~ See the License for the specific language governing permissions and ~ limitations under the License. --> <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"> <modelVersion>4.0.0</modelVersion> <groupId>org.springframework.ai</groupId> <artifactId>spring-ai</artifactId> <version>1.0.0-SNAPSHOT</version> <packaging>pom</packaging> <url>https://github.com/spring-projects/spring-ai</url> <name>Spring AI</name> <description>Building AI applications with Spring Boot</description> <modules> <module>spring-ai-docs</module> <module>spring-ai-bom</module> <module>spring-ai-core</module> <module>spring-ai-test</module> <module>spring-ai-spring-boot-autoconfigure</module> <module>spring-ai-retry</module> <module>spring-ai-spring-boot-docker-compose</module> <module>spring-ai-spring-boot-testcontainers</module> <module>spring-ai-spring-cloud-bindings</module> <module>document-readers/markdown-reader</module> <module>document-readers/pdf-reader</module> <module>document-readers/tika-reader</module> <module>vector-stores/spring-ai-azure-cosmos-db-store</module> <module>vector-stores/spring-ai-azure-store</module> <module>vector-stores/spring-ai-cassandra-store</module> <module>vector-stores/spring-ai-chroma-store</module> <module>vector-stores/spring-ai-coherence-store</module> <module>vector-stores/spring-ai-elasticsearch-store</module> <module>vector-stores/spring-ai-gemfire-store</module> <module>vector-stores/spring-ai-hanadb-store</module> <module>vector-stores/spring-ai-mariadb-store</module> <module>vector-stores/spring-ai-milvus-store</module> <module>vector-stores/spring-ai-mongodb-atlas-store</module> <module>vector-stores/spring-ai-neo4j-store</module> <module>vector-stores/spring-ai-opensearch-store</module> <module>vector-stores/spring-ai-oracle-store</module> <module>vector-stores/spring-ai-pgvector-store</module> <module>vector-stores/spring-ai-pinecone-store</module> <module>vector-stores/spring-ai-qdrant-store</module> <module>vector-stores/spring-ai-redis-store</module> <module>vector-stores/spring-ai-typesense-store</module> <module>vector-stores/spring-ai-weaviate-store</module> <module>spring-ai-spring-boot-starters/spring-ai-starter-aws-opensearch-store</module> <module>spring-ai-spring-boot-starters/spring-ai-starter-azure-cosmos-db-store</module> <module>spring-ai-spring-boot-starters/spring-ai-starter-azure-store</module> <module>spring-ai-spring-boot-starters/spring-ai-starter-cassandra-store</module> <module>spring-ai-spring-boot-starters/spring-ai-starter-chroma-store</module> <module>spring-ai-spring-boot-starters/spring-ai-starter-coherence-store</module> <module>spring-ai-spring-boot-starters/spring-ai-starter-elasticsearch-store</module> <module>spring-ai-spring-boot-starters/spring-ai-starter-gemfire-store</module> <module>spring-ai-spring-boot-starters/spring-ai-starter-hanadb-store</module> <module>spring-ai-spring-boot-starters/spring-ai-starter-mariadb-store</module> <module>spring-ai-spring-boot-starters/spring-ai-starter-milvus-store</module> <module>spring-ai-spring-boot-starters/spring-ai-starter-mongodb-atlas-store</module> <module>spring-ai-spring-boot-starters/spring-ai-starter-neo4j-store</module> <module>spring-ai-spring-boot-starters/spring-ai-starter-opensearch-store</module> <module>spring-ai-spring-boot-starters/spring-ai-starter-oracle-store</module> <module>spring-ai-spring-boot-starters/spring-ai-starter-pgvector-store</module> <module>spring-ai-spring-boot-starters/spring-ai-starter-pinecone-store</module> <module>spring-ai-spring-boot-starters/spring-ai-starter-qdrant-store</module> <module>spring-ai-spring-boot-starters/spring-ai-starter-redis-store</module> <module>spring-ai-spring-boot-starters/spring-ai-starter-typesense-store</module> <module>spring-ai-spring-boot-starters/spring-ai-starter-weaviate-store</module> <module>models/spring-ai-anthropic</module> <module>models/spring-ai-azure-openai</module> <module>models/spring-ai-bedrock</module> <module>models/spring-ai-bedrock-converse</module> <module>models/spring-ai-huggingface</module> <module>models/spring-ai-minimax</module> <module>models/spring-ai-mistral-ai</module> <module>models/spring-ai-oci-genai</module> <module>models/spring-ai-ollama</module> <module>models/spring-ai-openai</module> <module>models/spring-ai-postgresml</module> <module>models/spring-ai-qianfan</module> <module>models/spring-ai-stability-ai</module> <module>models/spring-ai-transformers</module> <module>models/spring-ai-vertex-ai-embedding</module> <module>models/spring-ai-vertex-ai-gemini</module> <module>models/spring-ai-watsonx-ai</module> <module>models/spring-ai-zhipuai</module> <module>models/spring-ai-moonshot</module> <module>spring-ai-spring-boot-starters/spring-ai-starter-anthropic</module> <module>spring-ai-spring-boot-starters/spring-ai-starter-azure-openai</module> <module>spring-ai-spring-boot-starters/spring-ai-starter-bedrock-ai</module> <module>spring-ai-spring-boot-starters/spring-ai-starter-bedrock-converse</module> <module>spring-ai-spring-boot-starters/spring-ai-starter-huggingface</module> <module>spring-ai-spring-boot-starters/spring-ai-starter-minimax</module> <module>spring-ai-spring-boot-starters/spring-ai-starter-mistral-ai</module> <module>spring-ai-spring-boot-starters/spring-ai-starter-oci-genai</module> <module>spring-ai-spring-boot-starters/spring-ai-starter-ollama</module> <module>spring-ai-spring-boot-starters/spring-ai-starter-openai</module> <module>spring-ai-spring-boot-starters/spring-ai-starter-postgresml-embedding</module> <module>spring-ai-spring-boot-starters/spring-ai-starter-qianfan</module> <module>spring-ai-spring-boot-starters/spring-ai-starter-stability-ai</module> <module>spring-ai-spring-boot-starters/spring-ai-starter-transformers</module> <module>spring-ai-spring-boot-starters/spring-ai-starter-vertex-ai-embedding</module> <module>spring-ai-spring-boot-starters/spring-ai-starter-vertex-ai-gemini</module> <module>spring-ai-spring-boot-starters/spring-ai-starter-watsonx-ai</module> <module>spring-ai-spring-boot-starters/spring-ai-starter-zhipuai</module> <module>spring-ai-spring-boot-starters/spring-ai-starter-moonshot</module> <module>spring-ai-integration-tests</module> </modules> <organization> <name>VMware Inc.</name> <url>https://spring.io</url> </organization> <scm> <url>https://github.com/spring-projects/spring-ai</url> <connection>git://github.com/spring-projects/spring-ai.git</connection> <developerConnection>git@github.com:spring-projects/spring-ai.git</developerConnection> </scm> <issueManagement> <system>Github Issues</system> <url>https://github.com/spring-projects/spring-ai/issues</url> </issueManagement> <ciManagement> <system>Github Actions</system> <url>https://github.com/spring-projects/spring-ai/actions</url> </ciManagement> <distributionManagement> <snapshotRepository> <id>spring-snapshots</id> <url>https://repo.spring.io/libs-snapshot-local</url> <releases> <enabled>false</enabled> </releases> </snapshotRepository> </distributionManagement> <licenses> <license> <name>Apache 2.0</name> <url>https://www.apache.org/licenses/LICENSE-2.0.txt</url> <distribution>repo</distribution> </license> </licenses> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> <java.version>17</java.version> <maven.compiler.source>17</maven.compiler.source> <maven.compiler.target>17</maven.compiler.target> <!-- production dependencies --> <spring-boot.version>3.3.6</spring-boot.version> <ST4.version>4.3.4</ST4.version> <azure-open-ai-client.version>1.0.0-beta.13</azure-open-ai-client.version> <jtokkit.version>1.1.0</jtokkit.version> <victools.version>4.31.1</victools.version> <kotlin.version>1.9.25</kotlin.version> <!-- NOTE: keep bedrockruntime and awssdk versions aligned --> <bedrockruntime.version>2.29.29</bedrockruntime.version> <awssdk.version>2.29.29</awssdk.version> <djl.version>0.30.0</djl.version> <onnxruntime.version>1.19.2</onnxruntime.version> <oci-sdk-version>3.51.0</oci-sdk-version> <com.google.cloud.version>26.48.0</com.google.cloud.version> <qdrant.version>1.9.1</qdrant.version> <ibm.sdk.version>9.20.0</ibm.sdk.version> <jsonschema.version>4.35.0</jsonschema.version> <swagger-annotations.version>2.2.25</swagger-annotations.version> <spring-cloud-bindings.version>2.0.3</spring-cloud-bindings.version> <!-- Protobuf --> <protobuf-java.version>3.25.2</protobuf-java.version> <!-- readers/writer/stores dependencies--> <pdfbox.version>3.0.3</pdfbox.version> <pgvector.version>0.1.6</pgvector.version> <sap.hanadb.version>2.20.11</sap.hanadb.version> <coherence.version>24.09</coherence.version> <milvus.version>2.3.5</milvus.version> <oracle.free.version>1.19.8</oracle.free.version> <gemfire.testcontainers.version>2.3.0</gemfire.testcontainers.version> <pinecone.version>0.8.0</pinecone.version> <fastjson.version>2.0.46</fastjson.version> <azure-core.version>1.53.0</azure-core.version> <azure-json.version>1.3.0</azure-json.version> <azure-identity.version>1.14.0</azure-identity.version> <azure-search.version>11.6.1</azure-search.version> <azure-cosmos.version>5.17.1</azure-cosmos.version> <weaviate-client.version>4.5.1</weaviate-client.version> <qdrant.version>1.9.1</qdrant.version> <typesense.version>0.5.0</typesense.version> <opensearch-client.version>2.10.1</opensearch-client.version> <mariadb.version>3.5.1</mariadb.version> <commonmark.version>0.22.0</commonmark.version> <!-- also managed by boot bom --> <oracle.version>23.4.0.24.05</oracle.version> <postgresql.version>42.7.2</postgresql.version> <cassandra.java-driver.version>4.18.1</cassandra.java-driver.version> <elasticsearch-java.version>8.13.3</elasticsearch-java.version> <spring-retry.version>2.0.9</spring-retry.version> <jackson.version>2.16.1</jackson.version> <!-- not sure if jsonSchema is also managed by boot bom --> <jackson-module-jsonSchema.version>2.17.2</jackson-module-jsonSchema.version> <!-- check on kotlin version as managed by boot bom --> <kotlin.version>1.9.25</kotlin.version> <!-- testing dependencies also managed by boot bom--> <httpclient5.version>5.3.1</httpclient5.version> <testcontainers.version>1.20.1</testcontainers.version> <!-- testing dependencies --> <testcontainers.opensearch.version>2.0.1</testcontainers.opensearch.version> <okhttp3.version>4.12.0</okhttp3.version> <!-- documentation dependencies --> <io.spring.maven.antora-version>0.0.4</io.spring.maven.antora-version> <org.maven.antora-version>1.0.0-alpha.4</org.maven.antora-version> <asciidoctorj-pdf.version>1.6.2</asciidoctorj-pdf.version> <!-- FIXME build failure with version 2.3.9 --> <asciidoctorj-epub.version>1.5.1</asciidoctorj-epub.version> <spring-asciidoctor-backends.version>0.0.6</spring-asciidoctor-backends.version> <!-- plugin versions --> <maven-compiler-plugin.version>3.11.0</maven-compiler-plugin.version> <maven-surefire-plugin.version>3.1.2</maven-surefire-plugin.version> <maven-failsafe-plugin.version>3.5.2</maven-failsafe-plugin.version> <maven-javadoc-plugin.version>3.5.0</maven-javadoc-plugin.version> <maven-source-plugin.version>3.3.0</maven-source-plugin.version> <jacoco-maven-plugin.version>0.8.10</jacoco-maven-plugin.version> <flatten-maven-plugin.version>1.5.0</flatten-maven-plugin.version> <maven-deploy-plugin.version>3.1.1</maven-deploy-plugin.version> <asciidoctor-maven-plugin.version>2.2.3</asciidoctor-maven-plugin.version> <maven-assembly-plugin.version>3.7.0</maven-assembly-plugin.version> <maven-dependency-plugin.version>3.5.0</maven-dependency-plugin.version> <!-- <maven-site-plugin.version>3.12.1</maven-site-plugin.version> --> <maven-site-plugin.version>4.0.0-M13</maven-site-plugin.version> <maven-project-info-reports-plugin.version>3.4.5</maven-project-info-reports-plugin.version> <maven-jar-plugin.version>3.3.0</maven-jar-plugin.version> <spring-javaformat-maven-plugin.version>0.0.43</spring-javaformat-maven-plugin.version> <maven-checkstyle-plugin.version>3.5.0</maven-checkstyle-plugin.version> <maven-checkstyle-plugin.failsOnError>true</maven-checkstyle-plugin.failsOnError> <maven-checkstyle-plugin.failOnViolation>true</maven-checkstyle-plugin.failOnViolation> <puppycrawl-tools-checkstyle.version>9.3</puppycrawl-tools-checkstyle.version> <disable.checks>true</disable.checks> </properties> <build> <plugins> <plugin> <groupId>io.spring.javaformat</groupId> <artifactId>spring-javaformat-maven-plugin</artifactId> <version>${spring-javaformat-maven-plugin.version}</version> <executions> <execution> <phase>validate</phase> <inherited>true</inherited> <goals> <goal>validate</goal> </goals> </execution> </executions> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-checkstyle-plugin</artifactId> <version>${maven-checkstyle-plugin.version}</version> <dependencies> <dependency> <groupId>com.puppycrawl.tools</groupId> <artifactId>checkstyle</artifactId> <version>${puppycrawl-tools-checkstyle.version}</version> </dependency> <dependency> <groupId>io.spring.javaformat</groupId> <artifactId>spring-javaformat-checkstyle</artifactId> <version>0.0.43</version> </dependency> </dependencies> <executions> <execution> <id>checkstyle-validation</id> <phase>validate</phase> <inherited>true</inherited> <configuration> <skip>${disable.checks}</skip> <configLocation>src/checkstyle/checkstyle.xml</configLocation> <headerLocation>src/checkstyle/checkstyle-header.txt</headerLocation> <includeTestSourceDirectory>true</includeTestSourceDirectory> <propertyExpansion> checkstyle.build.directory=${project.build.directory} checkstyle.suppressions.file=${project.basedir}/src/checkstyle/checkstyle-suppressions.xml checkstyle.additional.suppressions.file=${project.basedir}/src/checkstyle/checkstyle-suppressions.xml checkstyle.header.file=${project.basedir}/src/checkstyle/checkstyle-header.txt </propertyExpansion> <consoleOutput>true</consoleOutput> <failsOnError>${maven-checkstyle-plugin.failsOnError} </failsOnError> <failOnViolation> ${maven-checkstyle-plugin.failOnViolation} </failOnViolation> </configuration> <goals> <goal>check</goal> </goals> </execution> </executions> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-site-plugin</artifactId> <version>${maven-site-plugin.version}</version> </plugin> <plugin> <groupId>org.jetbrains.kotlin</groupId> <artifactId>kotlin-maven-plugin</artifactId> <version>${kotlin.version}</version> <executions> <execution> <id>compile</id> <goals> <goal>compile</goal> </goals> <configuration> <sourceDirs> <sourceDir>${project.basedir}/src/main/kotlin</sourceDir> <sourceDir>${project.basedir}/src/main/java</sourceDir> </sourceDirs> </configuration> </execution> <execution> <id>test-compile</id> <goals> <goal>test-compile</goal> </goals> <configuration> <sourceDirs> <sourceDir>${project.basedir}/src/test/kotlin</sourceDir> <sourceDir>${project.basedir}/src/test/java</sourceDir> </sourceDirs> </configuration> </execution> </executions> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>${maven-compiler-plugin.version}</version> <configuration> <release>${java.version}</release> <compilerArgs> <compilerArg>-parameters</compilerArg> </compilerArgs> </configuration> <executions> <!-- Replacing default-compile as it is treated specially by Maven --> <execution> <id>default-compile</id> <phase>none</phase> </execution> <!-- Replacing default-testCompile as it is treated specially by Maven --> <execution> <id>default-testCompile</id> <phase>none</phase> </execution> <execution> <id>java-compile</id> <phase>compile</phase> <goals> <goal>compile</goal> </goals> </execution> <execution> <id>java-test-compile</id> <phase>test-compile</phase> <goals> <goal>testCompile</goal> </goals> </execution> </executions> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-plugin</artifactId> <version>${maven-surefire-plugin.version}</version> <configuration> <argLine>${surefireArgLine}</argLine> <useFile>false</useFile> <trimStackTrace>false</trimStackTrace> <!-- Show test timing information --> <reportFormat>plain</reportFormat> <!-- Output test execution times in the logs --> <redirectTestOutputToFile>false</redirectTestOutputToFile> </configuration> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-jar-plugin</artifactId> <version>${maven-jar-plugin.version}</version> <configuration> <archive> <manifestEntries> <Implementation-Title>${project.artifactId}</Implementation-Title> <Implementation-Version>${project.version}</Implementation-Version> </manifestEntries> </archive> </configuration> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-source-plugin</artifactId> <version>${maven-source-plugin.version}</version> <executions> <execution> <id>generate-sources</id> <phase>package</phase> <goals> <goal>jar</goal> </goals> </execution> </executions> </plugin> <plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>flatten-maven-plugin</artifactId> <version>${flatten-maven-plugin.version}</version> <executions> <execution> <id>flatten</id> <phase>process-resources</phase> <goals> <goal>flatten</goal> </goals> <configuration> <updatePomFile>true</updatePomFile> <flattenMode>ossrh</flattenMode> <pomElements> <distributionManagement>remove</distributionManagement> <dependencyManagement>remove</dependencyManagement> <repositories>remove</repositories> <scm>keep</scm> <url>keep</url> <organization>resolve</organization> </pomElements> </configuration> </execution> <execution> <id>clean</id> <phase>clean</phase> <goals> <goal>clean</goal> </goals> </execution> </executions> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-deploy-plugin</artifactId> <version>${maven-deploy-plugin.version}</version> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-javadoc-plugin</artifactId> <version>${maven-javadoc-plugin.version}</version> <configuration> <overview> ${project.basedir}/spring-ai-docs/src/main/javadoc/overview.html</overview> <detectJavaApiLink>false</detectJavaApiLink> <failOnError>false</failOnError> <doclint>none</doclint> </configuration> <executions> <execution> <id>generate-javadocs</id> <phase>package</phase> <goals> <goal>jar</goal> </goals> </execution> </executions> </plugin> </plugins> </build> <profiles> <profile> <id>license</id> <activation> <activeByDefault>false</activeByDefault> </activation> <build> <plugins> <plugin> <groupId>com.mycila</groupId> <artifactId>license-maven-plugin</artifactId> <version>4.1</version> <executions> <execution> <phase>validate</phase> <goals> <goal>check</goal> </goals> </execution> </executions> <configuration> <properties> <owner>the original author or authors.</owner> <email /> <year>2024</year> </properties> <licenseSets> <licenseSet> <inlineHeader> <!-- @formatter:off --> Copyright 2023 - ${year} the original author or authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at https://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. <!-- @formatter:on --> </inlineHeader> <excludes> <exclude>**/.antlr/**</exclude> <exclude>**/aot.factories</exclude> <exclude>**/.sdkmanrc</exclude> <exclude>**/*.adoc</exclude> <exclude>**/*.puml</exclude> <exclude>**/pom.xml</exclude> <exclude>**/*.properties</exclude> <exclude>**/*.yaml</exclude> <exclude>**/*.yml</exclude> <exclude>**/*.map</exclude> <exclude>**/*.html</exclude> <exclude>**/*.xhtml</exclude> <exclude>**/*.jsp</exclude> <exclude>**/*.js</exclude> <exclude>**/*.css</exclude> <exclude>**/*.txt</exclude> <exclude>**/*.xjb</exclude> <exclude>**/*.ftl</exclude> <exclude>**/*.xsd</exclude> <exclude>**/*.xml</exclude> <exclude>**/*.sh</exclude> <exclude>**/generated/**</exclude> <exclude>**/Dockerfile</exclude> </excludes> </licenseSet> </licenseSets> </configuration> </plugin> </plugins> </build> </profile> <profile> <id>integration-tests</id> <activation> <activeByDefault>false</activeByDefault> </activation> <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-failsafe-plugin</artifactId> <version>${maven-failsafe-plugin.version}</version> <executions> <execution> <goals> <goal>integration-test</goal> <goal>verify</goal> </goals> </execution> </executions> </plugin> </plugins> </build> </profile> <profile> <id>ci-fast-integration-tests</id> <activation> <activeByDefault>false</activeByDefault> </activation> <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-failsafe-plugin</artifactId> <version>${maven-failsafe-plugin.version}</version> <configuration> <!-- <includes> <include>org.springframework.ai.anthropic**/*IT.java</include> </includes> --> <excludes> <!-- Models --> <exclude>org.springframework.ai.anthropic/**/*IT.java</exclude> <exclude>org.springframework.ai.azure.openai/**/*IT.java</exclude> <exclude>org.springframework.ai.bedrock/**/*IT.java</exclude> <exclude>org.springframework.ai.bedrock.converse/**/*IT.java</exclude> <exclude>org.springframework.ai.huggingface/**/*IT.java</exclude> <exclude>org.springframework.ai.minimax/**/*IT.java</exclude> <exclude>org.springframework.ai.mistralai/**/*IT.java</exclude> <exclude>org.springframework.ai.moonshot/**/*IT.java</exclude> <exclude>org.springframework.ai.oci/**/*IT.java</exclude> <exclude>org.springframework.ai.ollama/**/*IT.java</exclude> <!-- <exclude>org.springframework.ai.openai/**/*IT.java</exclude> --> <exclude>org.springframework.ai.postgresml/**/*IT.java</exclude> <exclude>org.springframework.ai.qianfan/**/*IT.java</exclude> <exclude>org.springframework.ai.stabilityai/**/*IT.java</exclude> <exclude>org.springframework.ai.transformers/**/*IT.java</exclude> <exclude>org.springframework.ai.vertexai.embedding/**/*IT.java</exclude> <exclude>org.springframework.ai.vertexai.gemini/**/*IT.java</exclude> <exclude>org.springframework.ai.watsonx/**/*IT.java</exclude> <exclude>org.springframework.ai.zhipuai/**/*IT.java</exclude> <!-- Vector Stores --> <exclude>org.springframework.ai.vectorstore**/CosmosDB**IT.java</exclude> <exclude>org.springframework.ai.vectorstore.azure/**IT.java</exclude> <exclude>org.springframework.ai.chat.memory/**/Cassandra**IT.java</exclude> <exclude>org.springframework.ai.vectorstore**/Cassandra**IT.java</exclude> <exclude>org.springframework.ai.chroma/**IT.java</exclude> <!-- <exclude>org.springframework.ai.vectorstore/**/**Chroma**IT.java</exclude> --> <exclude>org.springframework.ai.vectorstore**/Coherence**IT.java</exclude> <exclude>org.springframework.ai.vectorstore**/Elasticsearch**IT.java</exclude> <exclude>org.springframework.ai.vectorstore**/GemFire**IT.java</exclude> <exclude>org.springframework.ai.vectorstore**/Hana**IT.java</exclude> <exclude>org.springframework.ai.vectorstore**/Hana**IT.java</exclude> <exclude>org.springframework.ai.vectorstore**/Milvus**IT.java</exclude> <exclude>org.springframework.ai.vectorstore**/MariaDB**IT.java</exclude> <exclude>org.springframework.ai.vectorstore**/Mongo**IT.java</exclude> <exclude>org.springframework.ai.vectorstore**/Neo4j**IT.java</exclude> <exclude>org.springframework.ai.vectorstore**/OpenSearch**IT.java</exclude> <exclude>org.springframework.ai.vectorstore**/Oracle**IT.java</exclude> <!-- <exclude>org.springframework.ai.vectorstore**/PgVector**IT.java</exclude> --> <exclude>org.springframework.ai.vectorstore**/Pinecone**IT.java</exclude> <exclude>org.springframework.ai.vectorstore.qdrant/**/**IT.java</exclude> <exclude>org.springframework.ai.vectorstore**/Qdrant**IT.java</exclude> <exclude>org.springframework.ai.vectorstore**/Redis**IT.java</exclude> <exclude>org.springframework.ai.vectorstore**/Typesense**IT.java</exclude> <exclude>org.springframework.ai.vectorstore**/Weaviate**IT.java</exclude> <!-- Auto-configurations--> <!-- <exclude>org.springframework.ai.autoconfigure/**/**IT.java</exclude> --> <exclude>org.springframework.ai.autoconfigure.anthropic/**/**IT.java</exclude> <exclude>org.springframework.ai.autoconfigure.azure/**/**IT.java</exclude> <exclude>org.springframework.ai.autoconfigure.bedrock/**/**IT.java</exclude> <exclude>org.springframework.ai.autoconfigure.huggingface/**/**IT.java</exclude> <exclude>org.springframework.ai.autoconfigure.chat/**/**IT.java</exclude> <exclude>org.springframework.ai.autoconfigure.embedding/**/**IT.java</exclude> <exclude>org.springframework.ai.autoconfigure.image/**/**IT.java</exclude> <exclude>org.springframework.ai.autoconfigure.minimax/**/**IT.java</exclude> <exclude>org.springframework.ai.autoconfigure.mistralai/**/**IT.java</exclude> <exclude>org.springframework.ai.autoconfigure.moonshot/**/**IT.java</exclude> <exclude>org.springframework.ai.autoconfigure.oci/**/**IT.java</exclude> <exclude>org.springframework.ai.autoconfigure.ollama/**/**IT.java</exclude> <!-- <exclude>org.springframework.ai.autoconfigure.openai/**/**IT.java</exclude> --> <exclude>org.springframework.ai.autoconfigure.postgresml/**/**IT.java</exclude> <exclude>org.springframework.ai.autoconfigure.qianfan/**/**IT.java</exclude> <exclude>org.springframework.ai.autoconfigure.retry/**/**IT.java</exclude> <exclude>org.springframework.ai.autoconfigure.stabilityai/**/**IT.java</exclude> <exclude>org.springframework.ai.autoconfigure.transformers/**/**IT.java</exclude> <exclude>org.springframework.ai.autoconfigure.vectorstore/**/**IT.java</exclude> <exclude>org.springframework.ai.autoconfigure.vertexai/**/**IT.java</exclude> <exclude>org.springframework.ai.autoconfigure.watsonxai/**/**IT.java</exclude> <exclude>org.springframework.ai.autoconfigure.zhipuai/**/**IT.java</exclude> <exclude>org.springframework.ai.autoconfigure.zhipuai/**/**IT.java</exclude> <!-- Test Containers --> <exclude>org.springframework.ai.testcontainers/**/**IT.java</exclude> <!-- Test Docker Compose --> <exclude>org.springframework.ai.docker.compose/**/**IT.java</exclude> <!-- AI Evaluation --> <exclude>org.springframework.ai.integration.tests/**/**IT.java</exclude> </excludes> <!-- <includes> <include>**/*IT.java</include> </includes> <dependenciesToScan> <dependency>org.springframework.ai:spring-ai-anthropic</dependency> </dependenciesToScan> --> </configuration> <executions> <execution> <goals> <goal>integration-test</goal> <goal>verify</goal> </goals> </execution> </executions> </plugin> </plugins> </build> </profile> <profile> <id>test-coverage</id> <build> <plugins> <plugin> <groupId>org.jacoco</groupId> <artifactId>jacoco-maven-plugin</artifactId> <version>${jacoco-maven-plugin.version}</version> <executions> <execution> <id>prepare-agent</id> <goals> <goal>prepare-agent</goal> </goals> </execution> <execution> <id>report</id> <goals> <goal>report</goal> </goals> </execution> </executions> </plugin> </plugins> </build> </profile> <profile> <id>artifactory-staging</id> <distributionManagement> <repository> <id>spring-staging</id> <url>https://repo.spring.io/libs-staging-local</url> <snapshots> <enabled>false</enabled> </snapshots> </repository> </distributionManagement> </profile> <profile> <id>artifactory-milestone</id> <distributionManagement> <repository> <id>spring-milestones</id> <url>https://repo.spring.io/libs-milestone-local</url> <snapshots> <enabled>false</enabled> </snapshots> </repository> </distributionManagement> </profile> <profile> <id>sonatype</id> <properties> <maven.test.skip>true</maven.test.skip> </properties> <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-gpg-plugin</artifactId> <executions> <execution> <id>sign-artifacts</id> <phase>verify</phase> <goals> <goal>sign</goal> </goals> </execution> </executions> <configuration> <!-- Passphrase consumed from MAVEN_GPG_PASSPHRASE environment variable. --> </configuration> </plugin> <plugin> <groupId>org.sonatype.plugins</groupId> <artifactId>nexus-staging-maven-plugin</artifactId> <version>1.7.0</version> <extensions>true</extensions> <configuration> <serverId>sonatype-new</serverId> <nexusUrl>https://s01.oss.sonatype.org/</nexusUrl> <autoReleaseAfterClose>true</autoReleaseAfterClose> <keepStagingRepositoryOnFailure>true</keepStagingRepositoryOnFailure> </configuration> </plugin> </plugins> </build> </profile> </profiles> <dependencyManagement> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-dependencies</artifactId> <version>${spring-boot.version}</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies> </dependencyManagement> <repositories> <repository> <id>maven-central</id> <url>https://repo.maven.apache.org/maven2/</url> <snapshots> <enabled>false</enabled> </snapshots> <releases> <enabled>true</enabled> </releases> </repository> <repository> <id>spring-snapshots</id> <name>Spring Snapshots</name> <url>https://repo.spring.io/snapshot</url> <snapshots> <enabled>true</enabled> </snapshots> <releases> <enabled>false</enabled> </releases> </repository> <repository> <id>spring-milestones</id> <name>Spring Milestones</name> <url>https://repo.spring.io/milestone</url> <snapshots> <enabled>false</enabled> </snapshots> </repository> </repositories> <developers> <developer> <id>mpollack</id> <name>Mark Pollack</name> <email>mpollack at vmware.com</email> <organization>VMware</organization> <organizationUrl>http://www.spring.io</organizationUrl> <roles> <role>lead</role> </roles> </developer> </developers> <reporting> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-project-info-reports-plugin</artifactId> <version>${maven-project-info-reports-plugin.version}</version> <configuration> <skip>true</skip> </configuration> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-checkstyle-plugin</artifactId> <version>${maven-checkstyle-plugin.version}</version> <reportSets> <reportSet> <reports> <report>checkstyle</report> </reports> </reportSet> </reportSets> <configuration> <configLocation>src/checkstyle/checkstyle.xml</configLocation> <headerLocation>src/checkstyle/checkstyle-header.txt</headerLocation> <propertyExpansion> checkstyle.build.directory=${project.build.directory} checkstyle.suppressions.file=${project.basedir}/src/checkstyle/checkstyle-suppressions.xml checkstyle.additional.suppressions.file=${project.basedir}/src/checkstyle/checkstyle-suppressions.xml checkstyle.header.file=${project.basedir}/src/checkstyle/checkstyle-header.txt </propertyExpansion> </configuration> </plugin> </plugins> </reporting> </project>