6

假设我在 Maven / Eclipse 中有两个 Java 项目:

  • 托管在 GitHub 中的开源应用程序
  • 一个包含实用功能的小型私有库,它不是开源的(但我确实有权以编译的形式修改、构建和重新分发,例如作为 .jar 文件)

我想让其他人能够构建、修改和运行应用程序(如果他们愿意,还可以为开源项目做出贡献!),但这意味着他们也需要该库作为依赖项。

我想让事情变得简单,这样构建对我自己和应用程序的用户来说都很容易。

使这项工作最实用的方法是什么?

4

3 回答 3

3

使用 Maven 时,建议使用 Maven 存储库管理器(例如 Nexus)并按照此处所述配置您的设置文件:

https://help.sonatype.com/display/NXRM3/Maven+Repositories#MavenRepositories-ConfiguringApacheMaven

在您的情况下,这具有额外的好处,您可以使用 Maven 存储库管理器来托管任何私有工件。

于 2012-06-27T11:20:33.570 回答
3

在 GitHub 上提供您自己的 Maven 存储库以分发封闭源代码库,您可以重新分发并从您的项目 (pom.xml) 中引用它。

http://cemerick.com/2010/08/24/hosting-maven-repos-on-github很好地介绍了如何在 GitHub 上设置存储库。您应该注意该帖子中还提到的此类微型存储库的警告。

于 2012-06-27T11:25:49.760 回答
3

一个非常简单的解决方案是将您的私有库放入您的项目中(例如<project>/lib/library-1.0.jar)并将其作为系统依赖项包含在内。您可以将它包含在您的 pom 中。

<dependencies>
    <dependency>
      <groupId>my.private</groupId>
      <artifactId>library</artifactId>
      <version>1.0</version>
      <scope>system</scope>
      <systemPath>${project.basedir}/lib/library-1.0.jar</systemPath>
    </dependency>
  </dependencies>

注意:系统依赖不是传递性的!

从文档

此范围类似于提供的范围,只是您必须提供明确包含它的 JAR。工件始终可用,不会在存储库中查找。

于 2012-06-27T11:48:49.573 回答