取得不使用 Spring Boot 的相依性

當使用 Spring for Apache Pulsar 時,我們建議優先採用 Spring Boot。然而,如果您不使用 Spring Boot,取得相依性的首選方式是使用提供的 BOM,以確保在您的整個專案中使用一致的模組版本。以下範例展示了如何針對 Maven 和 Gradle 執行此操作。

  • Maven

  • Gradle

pom.xml
<dependencyManagement>
	<dependencies>
		<!-- ... other dependency elements ... -->
		<dependency>
			<groupId>org.springframework.pulsar</groupId>
			<artifactId>spring-pulsar-bom</artifactId>
			<version>1.1.6-SNAPSHOT</version>
			<type>pom</type>
			<scope>import</scope>
		</dependency>
	</dependencies>
</dependencyManagement>
build.gradle
plugins {
	id "io.spring.dependency-management" version "1.1.4"
}

dependencyManagement {
	imports {
		mavenBom 'org.springframework.pulsar:spring-pulsar-bom:1.1.6-SNAPSHOT'
	}
}

一組最簡化的 Spring for Apache Pulsar 相依性通常如下所示:

  • Maven

  • Gradle

pom.xml
<dependencies>
	<!-- ... other dependency elements ... -->
	<dependency>
		<groupId>org.springframework.pulsar</groupId>
		<artifactId>spring-pulsar</artifactId>
	</dependency>
</dependencies>
build.gradle
dependencies {
	implementation "org.springframework.pulsar:spring-pulsar"
}

如果您使用其他功能(例如 Reactive),您還需要包含適當的相依性。

Spring for Apache Pulsar 是基於 Spring Framework 6.1.14 建置的,但通常應適用於任何較新版本的 Spring Framework 6.x。許多使用者可能會遇到 Spring for Apache Pulsar 的傳遞相依性解析為 Spring Framework 6.1.14 的情況,這可能會導致奇怪的類別路徑問題。解決此問題最簡單的方法是在您的 dependencyManagement 區段中使用 spring-framework-bom,如下所示:

  • Maven

  • Gradle

pom.xml
<dependencyManagement>
	<dependencies>
		<!-- ... other dependency elements ... -->
		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-framework-bom</artifactId>
			<version>6.1.14</version>
			<type>pom</type>
			<scope>import</scope>
		</dependency>
	</dependencies>
</dependencyManagement>
build.gradle
plugins {
	id "io.spring.dependency-management" version "1.1.4"
}

dependencyManagement {
	imports {
		mavenBom 'org.springframework:spring-framework-bom:6.1.14'
	}
}

前面的範例確保了 Spring for Apache Pulsar 的所有傳遞相依性都使用 Spring 6.1.14 模組。