首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用Maven捆绑非开源依赖项。

用Maven捆绑非开源依赖项。
EN

Stack Overflow用户
提问于 2012-06-27 11:03:02
回答 3查看 1.6K关注 0票数 6

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

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

我想让其他人能够构建、修改和运行应用程序(如果他们愿意的话还可以返回到开源项目),但这意味着他们也需要库作为一个依赖项。

我想保持简单,这样对于我自己和应用程序的用户来说构建都很容易。

什么是最实际的方式使这一工作?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-06-27 11:25:49

在GitHub上提供您自己的Maven存储库来分发封闭源库,允许您从项目(pom.xml)中重新分发和引用它。

http://cemerick.com/2010/08/24/hosting-maven-repos-on-github很好地介绍了如何在GitHub上设置一个存储库。您应该知道在那篇文章中也提到了这样一个微存储库的注意事项。

票数 3
EN

Stack Overflow用户

发布于 2012-06-27 11:20:33

在使用Maven时,建议使用Maven Repository Manager (如Nexus ),并配置您的设置文件,如下所示:

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

在您的情况下,这有一个额外的好处,您可以使用Maven Repository托管任何私有工件。

票数 3
EN

Stack Overflow用户

发布于 2012-06-27 11:48:49

一个非常简单的解决方案是将您的私有库放置到您的项目中(例如<project>/lib/library-1.0.jar),并将它作为系统依赖项包含进来。你可以把它包括在你的饮料里。

代码语言:javascript
复制
<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。工件总是可用的,不在存储库中查找。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11224745

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档