我正在构建一个库,用于扫描课程并检查其字段是否为OneToMany
和ManyToOne
注释。我目前添加了eclipselink 3.6作为我的模块的依赖,像这样
<dependency>
<groupId>org.eclipse.persistence</groupId>
<artifactId>eclipselink</artifactId>
<version>2.6.0</version>
</dependency>
但我不想让我的lib依赖于eclipselink,我希望它能够与任何JPA实现一起使用。我该怎么做?
答案 0 :(得分:3)
不幸的是,没有标准包只提供注释/接口(例如,在servlet规范上)。每个ORM都有自己的包,但全部遵循jpa标准。您可以做的是将依赖项声明为optional
。
对于Eclipselink
<dependency>
<groupId>org.eclipse.persistence</groupId>
<artifactId>javax.persistence</artifactId>
<version>2.1.0</version>
<optional>true</optional>
</dependency>
您可能需要依赖eclipselink进行测试,因此您只能为测试标记原始依赖项...
<dependency>
<groupId>org.eclipse.persistence</groupId>
<artifactId>eclipselink</artifactId>
<version>2.6.0</version>
<scope>test</scope>
</dependency>