我正在开发一个实用程序库,该库扩展了rdf4j框架,使用其BOM模块导入它,如下所示:
<groupId>com.example</groupId>
<artifactId>rdf4j-utils</artifactId>
<version>1.0</version>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.eclipse.rdf4j</groupId>
<artifactId>rdf4j-bom</artifactId>
<version>3.0.1</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<dependencies>
<!-- core rdf4j dependencies here -->
</dependencies>
是否可以使rdf4j-utils
指定的 rdf4j 版本可用于导入模块,以便可以在不指定目标版本的情况下从 BOM 导入其他 rdf4j 模块? 例如:
<dependencies>
<dependency>
<groupId>com.example</groupId>
<artifactId>rdf4j-utils</artifactId>
<version>1.0</version>
</dependency>
<dependency>
<groupId>org.eclipse.rdf4j</groupId>
<artifactId>rdf4j-repository-sparql</artifactId>
<!-- !!! implicit rdf4j version as specified by rdf4j-utils -->
</dependency>
</dependencies>
你想要的,通过创建物料清单可以精确地解决。因此,您可以创建自己的BOM来导入rdf4j。然后,您可以将这两个依赖项放在依赖项管理部分中,并将版本定义为单个属性,以创建最少的维护设置。
<properties>
<rdf4j-utils-version>1.0</rdf4j-utils-version>
</properties>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.eclipse.rdf4j</groupId>
<artifactId>rdf4j-bom</artifactId>
<version>3.0.1</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<dependency>
<groupId>com.example</groupId>
<artifactId>rdf4j-utils</artifactId>
<version>${rdf4j-utils-version}</version>
</dependency>
<dependency>
<groupId>org.eclipse.rdf4j</groupId>
<artifactId>rdf4j-repository-sparql</artifactId>
<version>${rdf4j-utils-version}</version>
</dependency>
</dependencies>
<dependencyManagement>
对于更完整的 BOM 示例,我发现 spring-cloud-依赖项是一个很好的灵感 - 因为它很好,并且功能完整,是一个带有父 pom 的 BOM 并导入许多其他 BOM。
否,但您可以使用名称(如<rdf4j.version>
in<properties>
(定义属性,并在不同的依赖项中使用它。