如何发布具有非 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 部署到存储库变得简单。
我的项目中有 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 部署到存储库变得简单。