我想建一个图书馆https://github.com/mhewedy/spring-data-jpa-mongodb-expressions 在spring引导和spring数据jpa之上。
我想要实现的是,因此这个库没有显式地使用springboot或springdatajpa的实现特性,我需要使这个库从including项目获取版本。
目前,spring boot的版本是在pom.xml中定义的
因此,我认为一旦我将jar上传到maven存储库,并且每当有人依赖这个jar时,spring依赖关系中可能会有冲突(来自他的项目和来自这个jar的内容)
所以我的问题是,如果我将pom.xml中的依赖项作为可选的,那么这样做能解决问题吗?如果没有,我还能做些什么?
编辑:
下面是我在库中使用的spring的类型列表:
org.springframework.data.jpa.repository.JpaRepository;
org.springframework.data.repository.NoRepositoryBean;
org.springframework.data.domain.Page;
org.springframework.data.domain.Pageable;
org.springframework.data.domain.Sort;
org.springframework.data.jpa.domain.Specification;
org.springframework.data.jpa.repository.support.JpaEntityInformation;
org.springframework.data.jpa.repository.support.SimpleJpaRepository;
1条答案
按热度按时间lrl1mhuk1#
要构建库,需要使用给定版本的依赖项。您需要选择一个,否则编译器无法创建类路径并编译您的代码。
使用您的库的人可能会使用其他版本的依赖项。它们的版本(通常)会覆盖您的版本,因为它们在maven依赖中介中获胜。因此,您的库实际上将使用库用户指定的版本运行(如果库用户不使用您的依赖项,那么您的版本仍然存在)。
所以,剩下的问题是:您的代码是否可以使用更新/不同版本的依赖关系?
这不能笼统地说,因为这取决于依赖项的维护者的工作方式。