如何发布具有非 public 依赖项的项目?

How to publish project with non-public dependencies?

我的项目中有 Oracle JDBC 驱动程序 (ojdbc8.jar)

    <dependency>
        <groupId>com.oracle</groupId>
        <artifactId>ojdbc8</artifactId>
        <version>12.2.0.1</version>
    </dependency>

它安装在我的本地 Maven 存储库中:

mvn install:install-file -Dfile=C:\Oracle\Client\jdbc\lib\ojdbc8.jar -DgroupId=com.oracle -DartifactId=ojdbc8 -Dversion=12.2.0.1 -Dpackaging=jar

但现在我想发布我的项目,例如 GitHub

如果有人下载我的项目,他不会有 ojdbc8.jar

所以问题是 - 如何发布具有某些本地或附加依赖项的项目,这些依赖项不在 Maven public 存储库中?

如果有包含 ojdbc8.jar 的公开存储库,您可以在 pom 中定义该存储库。

如果没有,您需要查明是否允许您在 github 存储库中发布该 jar,或者您是否可以找到下载 link。

我在使用来自公司(通常是 Microsoft 和 Apple)的 jar 时遇到过这个问题,他们更喜欢人们使用他们的语言堆栈而不是 Java。我不是律师,但您可能想指导那些想要编译您的代码的人从 publicly 可下载的 jar 开始,而不是将他们指向您构建的 Maven 工件。

如果没有 public 存储库,那么您应该描述如何在用户的 local/corporate 存储库中构建依赖项。提供下载 jar 所需的 URL 并描述手动步骤(您用于构建副本的步骤),以便感兴趣的各方可以跟进。正如您所提到的,maven 使将 jars 部署到存储库变得简单。